打印

【GD32评测】二、USART

[复制链接]
1149|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
      GD32E231C8T6具有两组USART,分为USART0及USART1,其中USART0_TX与USART0_RX被复用至PA9与PA10,这两个端口正好通过Ardunio引出了,本次实验就是基于USART0;



在程序的实现上主要参考了官方的DEMO程序。另外,还参考了GD32E230固件库手册:

void USART0_Config(void)
{
        rcu_periph_clock_enable(USART0_PORT_CLK);        //打开USART0所在GPIOA端口时钟
        rcu_periph_clock_enable(RCU_USART0);                        //打开USART0时钟
       
        //USART0 GPIOA配置
        gpio_mode_set(USART0_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, USART0_TX_PIN | USART0_RX_PIN);
        gpio_output_options_set(USART0_PORT, GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ, USART0_TX_PIN | USART0_RX_PIN);
        gpio_af_set(USART0_PORT, GPIO_AF_1, USART0_TX_PIN | USART0_RX_PIN);
       
        //USART0配置
        usart_deinit(USART0);
        usart_baudrate_set(USART0, 115200U);                                                                                        //波特率115200
        usart_word_length_set(USART0, USART_WL_8BIT);                                                        //8位数据
        usart_stop_bit_set(USART0, USART_STB_1BIT);                                                                //1位停止位
        usart_parity_config(USART0, USART_PM_NONE);                                                                //无奇偶校验
        usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE);//禁用RTS硬件流控制
        usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE);//禁用CTS硬件流控制
        usart_receive_config(USART0, USART_RECEIVE_ENABLE);                                //使能接收
        usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);                        //使能发送
        usart_enable(USART0);                                                                                                                                                        //使能USART0
}


/*重定向*/
int fputc(int ch, FILE *f)
{
        usart_data_transmit(USART0, (uint8_t) ch);
        while(RESET == usart_flag_get(USART0, USART_FLAG_TBE));
        return ch;
}
int main(void)
{
        systick_config();

        USART0_Config();

        printf("GD32E231C_START USART0\r\n");

        while(1)
        {

        }
}



实验中暂时没有接收数据实验,只是实现了发送,主要目的是为方便后面的实验。
USART0.rar (367.35 KB)
GD32E230_gujiankuyonghuzhinan_V1.0.rar (4.67 MB)

使用特权

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

本版积分规则

99

主题

14979

帖子

17

粉丝