lmq0v9 发表于 2025-2-22 15:28

配置USART1,波特率为9600

校验和其他高级配置
校验位:通过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);
}

yangxiaor520 发表于 2025-2-22 15:41

GD的串口最高速率可以跑到几兆?
页: [1]
查看完整版本: 配置USART1,波特率为9600