GD32F407 UART串口通信详解
创作时间:
作者:
@小白创作中心
GD32F407 UART串口通信详解
引用
CSDN
1.
https://blog.csdn.net/m0_63235356/article/details/139904819
GD32F407是一款高性能的ARM Cortex-M4微控制器,广泛应用于工业控制、消费电子等领域。其内置的UART串口通信功能,可以实现设备之间的数据传输。本文将详细介绍如何使用GD32F407的USART0进行串口通信,包括硬件配置、软件编程以及printf重定向到串口的方法。
硬件配置
首先确定串口的TX和RX引脚。使用USART0时,对应的引脚是GPIOB的6和7号引脚。需要打开GPIOB的外设时钟,并配置引脚复用和模式。
rcu_periph_clock_enable(RCU_GPIOB);
gpio_af_set(GPIOB, GPIO_AF_7, GPIO_PIN_6 | GPIO_PIN_7);
gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_6 | GPIO_PIN_7);
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6 | GPIO_PIN_7);
UART配置
接下来配置UART,首先打开对应的外设时钟。
rcu_periph_clock_enable(RCU_USART0);
然后进行串口设置:
- 复位串口
- 设置波特率(常用值如9600、115200)
- 设置校验位(一般选择无校验)
- 设置数据位长度(通常是8位)
- 设置停止位(通常是1位)
usart_deinit(USART0);
usart_baudrate_set(USART0, 9600);
usart_parity_config(USART0, USART_PM_NONE);
usart_word_length_set(USART0, USART_WL_8BIT);
usart_stop_bit_set(USART0, USART_STB_1BIT);
使能串口发送和接收:
usart_enable(USART0);
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
usart_receive_config(USART0, USART_RECEIVE_ENABLE);
数据收发
发送数据时需要注意数据类型,实际使用中应以uint16_t为准。
void sendData(uint16_t data) {
while (RESET == usart_flag_get(USART0, USART_FLAG_TBE));
usart_data_transmit(USART0, data);
}
接收数据需要开启接收中断:
usart_interrupt_enable(USART0, USART_INT_RBNE);
nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
nvic_irq_enable(USART0_IRQn, 1, 1);
在中断处理函数中检测并清除中断标志位:
void USART0_IRQHandler(void) {
if ((RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE))) {
uint8_t data = (uint8_t)usart_data_receive(USART0);
sendData(data);
usart_interrupt_flag_clear(USART0, USART_INT_FLAG_RBNE);
}
}
printf重定向
在GD32F407中,不能使用Keil的Use MicroLib选项。解决方案是在代码中添加以下内容:
#if !defined(__MICROLIB)
#if (__ARMCLIB_VERSION <= 6000000)
struct __FILE {
int handle;
};
#endif
FILE __stdout;
void _sys_exit(int x) {
x = x;
}
#endif
int fputc(int ch, FILE *f) {
sendData(ch);
return ch;
}
这样就可以在主循环中使用printf打印信息到串口助手:
热门推荐
紫花苜蓿:养羊人的新宠儿?
从“广”字旁汉字看中国古代建筑之美
从甲骨文到现代,“广”字旁的奇妙演变
论酵母的发酵重要性
《永夜星河》开放式结局引发观众强烈反响
西汉酒泉胜迹:塞外江南里的汉武遗韵
打卡肃州区必去景点:酒泉鼓楼&西汉酒泉胜迹
肃州古迹探秘:大法幢寺&东千佛洞
安宁市十大旅游景点
秋冬必备:一杯玫瑰山楂水,提升免疫力
环氧树脂胶在家装DIY中的完美应用
大理石胶水选购全攻略:类型、要点与应用场景详解
电影投资成本分析:从制作到发行的全方位解析
白酒品鉴六步曲解读
打卡西汉酒泉胜迹:感受千年园林之美
冬春游酒泉:探秘安西极旱荒漠
冬日打卡:酒泉必去景点TOP2
房产证改名流程及所需材料详解
房产证没有发下来之前能更改户主的名字吗
改名后房产证怎么处理
书法小窍门:衣字旁的正确写法
古装剧里的“衤”字旁秘密
自然语言处理技术如何推动AI助手发展?
健康旅游成新宠,酒店业迎来发展新机遇
元宇宙旅游:未来旅行新宠?
新视野号揭秘:冥王星的神秘面纱
新视野号揭秘:冥王星上的惊人秘密!
新视野号揭秘冥王星:一颗活跃的冰冻星球
新台币汇率波动影响两岸贸易,如何应对?
新台币汇率波动加剧,你的钱袋子受影响了吗?