CH579M开发笔记11——串口收发

专栏目录:CH579M开发笔记——目录


功能概述

        在前面的几篇文章中,我们共同学习了GPIO和定时器的使用方法,并且使用定时器和GPIO的外部中断功能完成了红外信号的解码。

        本文开始,我们讲解CH579M的串口功能,在学会使用串口之后,我们可以使用串口转485芯片完成485通信实验,继而学习串口数据的常规处理方法:超时判断+状态机;对于数据量大,通信速率高的应用场景,我们还可以借助环形队列来提高数据的处理效率。

核心代码

查看代码
int main()
{
    GPIOA_SetBits(GPIO_Pin_9);
    GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);
    GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);
    UART1_DefInit();

    printf("Realiot UART test\r\n");
    /////////////////////////////////////////////////////////////////////////
    while (1) {
        // 查询方式:接收数据后发送出去
        while (1) {
            len = UART1_RecvString(dat);
            if (len) {
                UART1_SendString(dat, len);
            }
        }
    }
}

 

功能验证

         使用烧录工具将编译后的hex文件写入开发板后,使用串口助手向开发发送数据,可以看到开发板的将收到的数据原样返回。

注意事项

  • 实验中使用串口助手向开发板发送串口信息,开发板才会原样返回。
  • 本文采用的方法是查询法接收串口数据,仅为演示串口数据的收发功能,实际项目中一般采用中断方法。
posted @ 2022-02-10 15:29  realiot  阅读(665)  评论(0)    收藏  举报