打印
[CW32F030系列]

CW32 UART查询方式接收数据编程示例

[复制链接]
664|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2023-12-10 13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 forgot 于 2023-12-10 13:55 编辑

步骤 1:设置 SYSCTRL_AHBEN.GPIOx 为 1,SYSCTRL_APBENx.UARTx 为 1,使能 UART 引脚对应的 GPIO 时钟和 UART 配置时钟;
步骤 2:将 RXD 引脚配置成上拉输入复用模式;
步骤 3:设置 UARTx_CR1.SYNC 为 0,配置 UARTx 为异步全双工通信模式;
步骤 4:配置数据帧;
1. 起始位判定方式:配置 UARTx_CR1.START
2. 校验位:配置 UARTx_CR1.PARITY
3. 停止位:配置 UARTx_CR1.STOP
步骤 5:配置 UARTx_CR2.SOURCE,选择传输时钟源;
步骤 6:配置 UARTx_CR1.OVER,选择采样模式;
步骤 7:配置 UARTx_BRRI 和 UARTx_BRRF 寄存器,配置波特率;
步骤 8:向 UARTx_ICR 寄存器写入 0x00,清除所有标志位;
步骤 9:设置 UARTx_CR1.RXEN 为 1 使能接收;
步骤 10:查询等待 UARTx_ISR.RC 标志位置 1,确认接收完一帧数据 ;
步骤 11:查询错误标志 UARTx_ISR.PE 和 UARTx_ISR.FE,确认数据是否有效,如果数据无效,则进行出错处理,如果数据有效,则读取 UARTx_RDR 寄存器并保存数据;
步骤 12:设置 UARTx_ICR.RC 为 0,清除接收完成标志位;
步骤 13:重复步骤 10 至步骤 13,接收下一帧数据。

使用特权

评论回复
沙发
tpgf| | 2024-2-5 16:53 | 只看该作者
使用查询方式来接受数据是不是太浪费资源了呢

使用特权

评论回复
板凳
heimaojingzhang| | 2024-2-5 17:15 | 只看该作者
如何判定当前数据是否接受完成呢

使用特权

评论回复
地板
keaibukelian| | 2024-2-5 17:31 | 只看该作者
串口接收数据的停止位是系统自己加上去的吧

使用特权

评论回复
5
中国龙芯CDX| | 2024-2-16 13:53 | 只看该作者
串口具体通讯机制是啥?

使用特权

评论回复
6
jf101| | 2024-2-18 08:36 | 只看该作者
如果持续不断的接收数据缓存是不是会溢出

使用特权

评论回复
7
AdaMaYun| | 2024-2-18 13:52 | 只看该作者
查询方式进行串口通讯现在其实用的还是比较广泛的

使用特权

评论回复
8
小夏天的大西瓜| | 2024-2-21 22:09 | 只看该作者
UARTx_ICR.RC 为 0可以清除接收完成标志位

使用特权

评论回复
9
星辰大海不退缩| | 2024-2-21 23:08 | 只看该作者
查询错误标志 UARTx_ISR.PE 和 UARTx_ISR.FE这个过程是必须的

使用特权

评论回复
10
小小蚂蚁举千斤| | 2024-2-22 10:53 | 只看该作者
查询方式接收数据对于效率有点慢

使用特权

评论回复
11
szt1993| | 2024-2-25 16:23 | 只看该作者
设置 SYSCTRL_AHBEN.GPIOx 为 1,SYSCTRL_APBENx.UARTx 为 1,使能 UART 引脚对应的 GPIO 时钟和 UART 配置时钟;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1762

主题

13158

帖子

55

粉丝