【PSOC4】入门学习笔记3——UART半双工通信
按照组件手册,今天开始学习UART的半双工通信。试验目的:串口先发送一串数据,然后在while循环中,当串口收到数据后把数据发送出来。
步骤:
1、在原理图中放置一个UART【V2.30】组件。如图1.JPG所示。
2、双击UART组件,按照图2.JPG配置该组件。
配置模式Mode为半双工(Half Duplex),波特率设置为115200,数据位为8位,奇偶校验位为None,Rx Buffer Size和Tx Buffer Size为4。
3、在UART.cudwr配置管脚,Rx_1为P0.0,Tx_1为P1.5。
4、双击main.c,编写程序如图3.JPG所示。
5、编译下载后,通过USB转串口芯片连接到电脑上,通过串口调试工具测试程序。
如图4.JPG所示,芯片复位后发送数据“Half Duplex Test”,然后一直等待串口调试助手发送数据,串口调试助手设置为1s发送一次数据,可以看到串口收到数据后将接收到的数据发送出来显示。
程序分析:
首先初始化UART,通过UART_1_LoadTxConfig();将串口配置发送器,这样串口就可以发送数据。然后发送字符串“Half Duplex Text”
接着通过UART_1_LoadRxConfig();将串口配置为接收方式。
如果接收到的数据大于0,就将串口配置为发送模式,同时将接收的数据发送出来。
do
{
tmpStat = UART_1_ReadTxStatus();
}
while(~tmpStat & UART_1_TX_STS_COMPLETE);
这个语句是等待发送成功,UART_1_TX_STS_COMPLETE在UART_1.h中定义了,
#define UART_1_TX_STS_COMPLETE (uint8)(0x01u << UART_1_TX_STS_COMPLETE_SHIFT)
也就是说UART_1_TX_STS_COMPLETE的值是1,while是读取状态位的第0位,实际测试看出,成功发送数据,第0位是1,没有成功发送数据,第0位是0.
很强大的说,不过咱把图片编辑好看些呗:loveliness: 顶一个~~~~~~~~~~ 本来打算把图片加到相应文字下面,但是没有弄成,就只有在文字上说明图片名称,把图片都加到下面了:$ 想问楼主、最后一张图是截自哪个软件的、 fengyiyong 发表于 2013-11-20 14:37 static/image/common/back.gif
想问楼主、最后一张图是截自哪个软件的、
就是串口调试助手 不错啊!!!学习了! 做个标记,有空学下 楼主好,你这发送接收的都是字符,字符串用那种方式接收?我调试的时候字符串一直是错误的
页:
[1]