8回答

1收藏

[原创] 【PSOC4】入门学习笔记3——UART半双工通信

英飞凌 英飞凌 7779 人阅读 | 8 人回复 | 2013-10-23

按照组件手册,今天开始学习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.




1.JPG (30.11 KB, 下载次数: 121)

1.JPG

2.JPG (58.7 KB, 下载次数: 111)

2.JPG

3.JPG (73.13 KB, 下载次数: 135)

3.JPG

4.JPG (48.59 KB, 下载次数: 137)

4.JPG
分享到:
回复

使用道具 举报

回答|共 8 个

倒序浏览

沙发

GY@艳

发表于 2013-10-23 13:19:55 | 只看该作者

很强大的说,不过咱把图片编辑好看些呗
爱板  爱板  爱板     https://www.cirmall.com
板凳

fj1161

发表于 2013-10-23 13:23:46 | 只看该作者

顶一个~~~~~~~~~~
第五年了,这次一定要坚持到底,不留遗憾!!!
地板

feiante

发表于 2013-10-23 14:00:08 | 只看该作者

本来打算把图片加到相应文字下面,但是没有弄成,就只有在文字上说明图片名称,把图片都加到下面了
5#

fengyiyong

发表于 2013-11-20 14:37:18 | 只看该作者

想问楼主、最后一张图是截自哪个软件的、
6#

feiante

发表于 2013-11-21 08:05:22 | 只看该作者

fengyiyong 发表于 2013-11-20 14:37
想问楼主、最后一张图是截自哪个软件的、

就是串口调试助手
7#

党国特派员

发表于 2016-11-23 10:46:04 | 只看该作者

不错啊!!!学习了!
喜欢在构思妙想,电子产品DIY是工作,也是一种爱好。
8#

feixiang20

发表于 2017-12-17 21:42:34 | 只看该作者

做个标记,有空学下
9#

eefocus_4128795

发表于 2025-5-6 10:47:05 | 只看该作者

楼主好,你这发送接收的都是字符,字符串用那种方式接收?我调试的时候字符串一直是错误的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条