打印
[CW32F030系列]

CW32 UART中断方式接收数据编程示例

[复制链接]
124|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2023-12-10 13:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
步骤 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:配置 NVIC 控制器;
步骤 9:设置 UARTx_IER.RC 为 1 使能接收完成中断;
步骤 10:设置 UARTx_CR1.RXEN 为 1 使能接收;
步骤 11:等待一帧数据接收完成,进入中断服务函数:查询 UARTx_ISR.PE 和 UARTx_ISR.FE 标志位,确认数据是否有效,如果无效,则进行出错处理;如果有效,查询判断 UARTx_ISR.RC 标志位,如果标志位为 1,则读取 UARTx_RDR 寄存器并保存数据,并清除该标志位。

使用特权

评论回复
沙发
LOVEEVER| | 2023-12-10 15:46 | 只看该作者
楼主有具体的应用案例嘛

使用特权

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

本版积分规则

1257

主题

10847

帖子

51

粉丝