3012|0

212

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【GD32F350分享】【二】LED跑马灯和串口使用 [复制链接]

        搭建好开发环境后,首先把板子现有的LED驱动起来,同时把串口调通,便于打印调试信息,因为在提供的例程中包含了这部分代码的使用,稍做修改和整理就可以了。
        在工程目录中的Driver文件夹中分别添加led和usart1的源文件和头文件,并添加至Keil工程中。
        编写LED端口初始化:
  1. void LED_Init(void)
  2. {
  3.          rcu_periph_clock_enable(RCU_GPIOB);
  4.    gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,  
  5.                   GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);
  6.    gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_2MHZ,  
  7.                             GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);
  8.        
  9.         LED4_OFF();
  10.         LED5_OFF();
  11.         LED6_OFF();
  12. }
复制代码

  1. #define LED5_ON()  gpio_bit_set(GPIOB, GPIO_PIN_8)
  2. #define LED5_OFF() gpio_bit_reset(GPIOB, GPIO_PIN_8)

  3. #define LED6_ON()  gpio_bit_set(GPIOB, GPIO_PIN_9)
  4. #define LED6_OFF() gpio_bit_reset(GPIOB, GPIO_PIN_9)

  5. #define LED4_ON()  gpio_bit_set(GPIOB, GPIO_PIN_10)
  6. #define LED4_OFF() gpio_bit_reset(GPIOB, GPIO_PIN_10)
复制代码



           在usrat1源文件中初始化串口1,也就是接在调试上的串口,并将串口重定向为printf打印调试信息。
  1. /**
  2.   * [url=home.php?mod=space&uid=159083]@brief[/url]  USART1初始化
  3. **/
  4. void USART1_Init(void)
  5. {
  6.         /* enable COM GPIO clock */
  7.         rcu_periph_clock_enable(RCU_GPIOA);

  8.         /* enable USART clock */
  9.         rcu_periph_clock_enable(RCU_USART1);

  10.         /* connect port to USARTx_Tx */
  11.         gpio_af_set(GPIOA, GPIO_AF_1, GPIO_PIN_2);

  12.         /* connect port to USARTx_Rx */
  13.         gpio_af_set(GPIOA, GPIO_AF_1, GPIO_PIN_3);

  14.         /* configure USART Tx as alternate function push-pull */
  15.         gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_2);
  16.         gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_2);

  17.         /* configure USART Rx as alternate function push-pull */
  18.         gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_3);
  19.         gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_3);

  20.         /* USART configure */
  21.         usart_deinit(USART1);
  22.         usart_baudrate_set(USART1, 115200U);
  23.         usart_receive_config(USART1, USART_RECEIVE_ENABLE);
  24.         usart_transmit_config(USART1, USART_TRANSMIT_ENABLE);

  25.         usart_enable(USART1);
  26. }


  27. /* retarget the C library printf function to the USART */
  28. int fputc(int ch, FILE *f)
  29. {
  30.         usart_data_transmit(USART1, (uint8_t)ch);
  31.         while(RESET == usart_flag_get(USART1, USART_FLAG_TBE));

  32.         return ch;
  33. }
复制代码



             在主函数中编写流水灯程序,和调试打印信息就可以了。


此帖出自GD32 MCU论坛
点赞 关注(1)
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表