打印

USART配置步骤

[复制链接]
692|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lmq0v9|  楼主 | 2025-2-22 13:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
启用USART时钟
在使用USART之前,我们需要启用USART的时钟。GD32E230使用rcu_periph_clock_enable()函数来启用USART模块的时钟。

c
// 启用USART1时钟
rcu_periph_clock_enable(RCU_USART1);
配置GPIO引脚
USART需要将数据通过GPIO引脚发送和接收。在GD32E230中,GPIO引脚可以配置为复用功能模式,用于USART的TX(发送)和RX(接收)功能。

假设我们使用PA9作为USART1的TX(发送)引脚,PA10作为RX(接收)引脚。

c
// 启用GPIOA时钟
rcu_periph_clock_enable(RCU_GPIOA);

// 配置PA9为USART1的TX(复用推挽输出模式)
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);

// 配置PA10为USART1的RX(浮空输入模式)
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
2.3 配置USART参数
通过usart_deinit()函数先将USART模块复位,再使用usart_init()函数配置USART的波特率、数据位、停止位等。

波特率:决定数据传输的速率(如9600、115200等)。
数据位:常见配置为8位或9位。
停止位:可以选择1位或2位停止位。
校验位:通常为无校验、偶校验或奇校验。
c
// 配置USART1
usart_deinit(USART1);  // 复位USART1
usart_init(USART1, 9600, USART_WL_8BIT, USART_STB_1BIT, USART_PERR_NOPARITY);  // 配置波特率为9600,数据位8,停止位1,无校验
启用USART模块
配置完USART参数后,我们需要使能USART模块,并使能接收和发送。

c
// 启用USART1接收和发送功能
usart_enable(USART1);
配置USART中断(可选)
如果需要通过中断来处理串口数据,可以使能USART中断并配置中断优先级。

c
// 启用USART1接收中断
usart_interrupt_enable(USART1, USART_INT_RBNE);  // 启用接收数据中断

// 配置中断优先级
nvic_irq_priority_set(USART1_IRQn, 0, 0);
nvic_irq_enable(USART1_IRQn);

使用特权

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

本版积分规则

21

主题

135

帖子

0

粉丝