/**
 * @brief SIF-发送数据
 * @details
 * 在P2.6上发送0x0xf0，并记录实际波形
 */
#include "lks32mc09x_lib.h"
void SoftDelaymS(uint32_t n);

volatile int baud = 115200;    // 设定波特率
volatile int refbaud = 115200; // 设定波特率
volatile int sendflg = 0;      // 设定波特率
int main(void)
{
    __disable_irq();
    SIF_InitTypeDef SIF_InitStruct;
    SIF_StructInit(&SIF_InitStruct);

    SIF_InitStruct.SIF_DONE = DISABLE;       // 传输完成后默认低电平
    SIF_InitStruct.SIF_SYNC = DISABLE;       // 同步信号默认低电平
    SIF_InitStruct.SIF_SYNC_PULSE = DISABLE; // 同步信号有电平反转
    SIF_InitStruct.SIF_DONE_VLD = DISABLE;   // 无结束信号
    SIF_InitStruct.SIF_SYNC_VLD = DISABLE;   // 有同步信号
    SIF_InitStruct.SIF_RATIO = DISABLE;      // 数据占空比 2：1
    SIF_InitStruct.SIF_MSB = ENABLE;         // 数据传送顺序 高字节在前
    SIF_InitStruct.SIF_EN = ENABLE;          // SIF模块使能
    SIF_InitStruct.SIF_TOSC = 2;             // 时基设置 47 * 333 = 15.67US
    SIF_InitStruct.SIF_TSTH1 = 2;            // 同步时长 1000 * SIF_TOSC * 32
    SIF_InitStruct.SIF_TDTH1 = 2;            // 结束信号时长 1MS
    SIF_InitStruct.SIF_IRQ_IF = ENABLE;      // 有SIF中断标志位
    SIF_InitStruct.SIF_DMA_EN = DISABLE;     // DMA传输使能
    SIF_InitStruct.SIF_IRQ_EN = DISABLE;     // SIF中断关闭

    SIF_Init(SIF0, &SIF_InitStruct);

    GPIO_Config(GPIO2, GPIO_PinSource_6, GPIO_Mode_OUT, GPIO_AF_SIF);
    for (;;)
    {
        if (sendflg)
        {
            SIF0->IRQ = BIT4;
            SIF_Senddata(SIF0, 0xf0);
            while ((SIF0->IRQ & BIT4) == 0)
                ;
            sendflg = 0;
        }
    }
}

