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打印信息到串口助手:
热门推荐
法院拍卖房屋的税费如何收取以及计算方式
一文概览数据资产入表的价值、建设全流程以及相关案例
广州纯阳观:岭南道教文化的瑰宝
掌握“20-20-20”法则,正确坐姿,适宜光线,限电子产品时间
物流无人机配送兴起:如何用团体标准保障偏远地区配送安全
CS2模式描述
声卡怎么连接音响
瑶芯技术分享 | 反激式同步整流效率影响分析
口腔医院流调:怎样防止牙齿蛀牙的发生和复发?
“高配”A股!高盛等押中多只翻倍牛股,涉及“谷子经济”、“并购重组”等概念
秦国军功爵制,一场幻想的“平等”春梦
“超光速”的三种方法,将力助人类实现真正意义的星际旅行!
当刀叉指向同类:被恐惧与误解包裹的食人族之谜
2025火的第一道菜,为什么是鸡蛋羹?
外耳道炎患者能否使用碘酊?医生提醒:这样做反而会加重病情
30℃大回暖后迎剧烈降温,3月“开门潮”将至,多地现倒春寒
【Photoshop教程】使用曲线调整实现肤色变白
道家“无为至无不为”的智慧探索
论文查重如何保证不被泄露?
冬天买鱼,这5种鱼不能人工养殖,刺少肉嫩营养高,千万别错过
细数古代关于“鸡”的故事
如何判断一家公司是否为子公司?这种判断依据有哪些局限性?
超速如何处理?如何避免超速并确保行车安全?
跨国婚姻如何办理签证和居留手续
攻防对抗视角下的网络安全主动防御体系研究
力箭一号遥五运载火箭“一箭15星”发射成功,商业航天首次服务国际用户
促进骨头愈合的补品
大学的冷门专业有哪些
耶鲁/斯坦福/宾大等发布毕业生就业报告!这些专业是热门,藤校毕业生都去了哪?
寻猫启示|躲雨猫,科幻猫,恐怖猫……哪些作家在借猫达意?