本帖最后由 jinglixixi 于 2023-3-26 13:22 编辑
串口通信是程序调试和数据传送的重要工具,在HC32F4A0开发板自然也提供了串口通信功能。
为测试其串口通信功能,这里使用的是例程usart_uart_polling。
该例程的功能是通过DAP来进行串口的收发,所使用的波特率为115200bps。在使用串口助手软件的情况下,可通过界面来发送字母或数字,并通过窗口来回显接收的内容。
本来这个测试是比较方便的,但它有一个前提就是DAP接口必须是可驱动的,也就是说在电脑上是有虚拟串口可用的。但对于WIN7系统来说,是没有这种驱程提供的,也就导致其无法使用。
那如何来解决这个问题呢?
通过对程序的分析,可知该例程所使用的串口为USART1,其引脚的功能配置为:
USART1_RX---- PH13
USART1_TX ---- PH15
这样就可以用USB转TTL模块来连接这2个引脚,进而完成串口通讯的测试,具体连接见图1所示。
图1 串口连接
经程序的编译和下载,其测试结果如图2所示,其收发一致说明功能正常,这样就完成了串口的测试。
图2 串口测试
有了这个基础,再进行函数DDL_PrintfInit()的测试即可达到图3的测试结果,即调试功能也可实现了。
图3 数据采集
实现图4所示效果的字节数据发送函数为:
USART_FuncCmd(USART_UNIT, (USART_RX | USART_INT_RX | USART_TX), ENABLE);
i=0;
for (;;) {
USART_WriteData(USART_UNIT, 0x0000|ML[i]);
DDL_DelayMS(10UL);
i=(i+1)%10;
}
图4 发送字节数据
利用串口屏的指令可在显示屏上绘制指定通道的波形图,产生图5效果的程序为:
while(1)
{
for ( i = 0 ; i < 64; i++)
{
sj=values[i][0];
sj<<=8;
sj|=values[i][1];
sj=sj/20;
ML[9]=sj%1000/100+'0';
ML[10]=sj%100/10+'0';
ML[11]=sj%10+'0';
for ( j = 0 ; j < 15; j++)
{
USART_WriteData(USART_UNIT, 0x0000|ML[j]);
DDL_DelayMS(10UL);
}
}
DDL_DelayMS(1000UL);
}
图5 绘制波形
图6 接收数据
演示视频:
VID_20230326_120848