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文件写入开发板后,使用串口助手向开发发送数据,可以看到开发板的将收到的数据原样返回。

注意事项
- 实验中使用串口助手向开发板发送串口信息,开发板才会原样返回。
- 本文采用的方法是查询法接收串口数据,仅为演示串口数据的收发功能,实际项目中一般采用中断方法。

浙公网安备 33010602011771号