灵动微MM32F003硬件最小系统 --- 串口循环发送接收,变

2020-11-29  本文已影响0人  黄开通

本例程用while循环收发串口数据,可以收发变长数据。

main主程序流程

int main(void)
{
    u8 rx_cnt = 0, tx_flag;
    InitSystick();
    RCC_ConfigInit();
    GPIO_ConfigInit();

    Uart_ConfigInit(9600);
    UartSendGroup((u8*)printBuf, sprintf(printBuf, "sprintf ok\r\n"));          //pintf stdio data
    UartSendAscii("UartSendAscii\r\n");                                         //printf string
    UartSendAscii("Please input data ,end with '\\n' \r\n");
    while(1) {

        if(UART_GetFlagStatus(UART, UART_FLAG_RXAVL) == SET) {                      //check receive status

            UART_ClearFlag(UART, UART_FLAG_RXAVL);
            printBuf[rx_cnt % 100] = UART_ReceiveData(UART);

            if( printBuf[rx_cnt % 100] == '\n') {                                   //check '\n',and set send flag;
                tx_flag = 1;
            }

            rx_cnt++;
        }

        if(tx_flag != 0) {
            UartSendGroup((u8*)printBuf, rx_cnt);                               //send data;
            rx_cnt = 0;                                                         //claer receive count;
            tx_flag = 0;                                                        //clear send flag;
        }
    }
}

官方例程的修正已基本完成,需要程序的同学可以到百度网盘下载。
提取码:0o5i

上一篇下一篇

猜你喜欢

热点阅读