| 
 
| 校验和其他高级配置 校验位:通过USART_PERR_EVENPARITY或USART_PERR_ODDPARITY来设置偶校验或奇校验。
 数据位:通过USART_WL_8BIT或USART_WL_9BIT来设置数据位长度。
 停止位:通过USART_STB_1BIT、USART_STB_2BIT等来设置停止位数量。
 
 配置USART1,波特率为9600,数据位8,停止位1,无校验,并发送字符串
 c
 #include "gd32e230.h"
 
 void usart_config(void) {
 // 启用USART1时钟
 rcu_periph_clock_enable(RCU_USART1);
 rcu_periph_clock_enable(RCU_GPIOA);
 
 // 配置GPIO引脚PA9(TX)和PA10(RX)为复用功能
 gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);  // TX
 gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);  // RX
 
 // 配置USART1:波特率9600,数据位8位,停止位1位,无校验
 usart_deinit(USART1);
 usart_init(USART1, 9600, USART_WL_8BIT, USART_STB_1BIT, USART_PERR_NOPARITY);
 
 // 启用USART1
 usart_enable(USART1);
 }
 
 void usart_send_data(uint8_t data) {
 usart_data_transmit(USART1, data);
 while (usart_flag_get(USART1, USART_FLAG_TC) == RESET);  // 等待传输完成
 }
 
 int main(void) {
 usart_config();  // 配置USART1
 const char *str = "Hello, USART!";
 
 // 发送字符串
 while (*str) {
 usart_send_data(*str++);
 }
 
 while (1);
 }
 
 
 | 
 |