【GD32评测】二、USART

[复制链接]
1645|0
 楼主| lisingch 发表于 2020-4-26 18:17 | 显示全部楼层 |阅读模式
      GD32E231C8T6具有两组USART,分为USART0及USART1,其中USART0_TX与USART0_RX被复用至PA9与PA10,这两个端口正好通过Ardunio引出了,本次实验就是基于USART0;
2020-04-26_173545.png
2020-04-26_172624.png

在程序的实现上主要参考了官方的DEMO程序。另外,还参考了GD32E230固件库手册:
2020-04-26_181359.png
  1. void USART0_Config(void)
  2. {
  3.         rcu_periph_clock_enable(USART0_PORT_CLK);        //打开USART0所在GPIOA端口时钟
  4.         rcu_periph_clock_enable(RCU_USART0);                        //打开USART0时钟
  5.        
  6.         //USART0 GPIOA配置
  7.         gpio_mode_set(USART0_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, USART0_TX_PIN | USART0_RX_PIN);
  8.         gpio_output_options_set(USART0_PORT, GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ, USART0_TX_PIN | USART0_RX_PIN);
  9.         gpio_af_set(USART0_PORT, GPIO_AF_1, USART0_TX_PIN | USART0_RX_PIN);
  10.        
  11.         //USART0配置
  12.         usart_deinit(USART0);
  13.         usart_baudrate_set(USART0, 115200U);                                                                                        //波特率115200
  14.         usart_word_length_set(USART0, USART_WL_8BIT);                                                        //8位数据
  15.         usart_stop_bit_set(USART0, USART_STB_1BIT);                                                                //1位停止位
  16.         usart_parity_config(USART0, USART_PM_NONE);                                                                //无奇偶校验
  17.         usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE);//禁用RTS硬件流控制
  18.         usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE);//禁用CTS硬件流控制
  19.         usart_receive_config(USART0, USART_RECEIVE_ENABLE);                                //使能接收
  20.         usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);                        //使能发送
  21.         usart_enable(USART0);                                                                                                                                                        //使能USART0
  22. }


  23. /*重定向*/
  24. int fputc(int ch, FILE *f)
  25. {
  26.         usart_data_transmit(USART0, (uint8_t) ch);
  27.         while(RESET == usart_flag_get(USART0, USART_FLAG_TBE));
  28.         return ch;
  29. }
  1. int main(void)
  2. {
  3.         systick_config();

  4.         USART0_Config();

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

  6.         while(1)
  7.         {

  8.         }
  9. }
微信图片_20200426180730.jpg
2020-04-26_180322.png

实验中暂时没有接收数据实验,只是实现了发送,主要目的是为方便后面的实验。
USART0.rar (367.35 KB, 下载次数: 15)
GD32E230_gujiankuyonghuzhinan_V1.0.rar (4.67 MB, 下载次数: 4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

15005

帖子

19

粉丝
快速回复 在线客服 返回列表 返回顶部