如题,我现在将bsp文件中的GD32F303工程中的drv_uart.c文件里面的uart1的手法引脚进行修改,现在工程中使用的是引脚GPIOA2和GPIOA3,现在查找数据手册,知道引脚GPIOD5和GPIOD6也是uart1的收发引脚,现在将其进行替换,在验证发现没有数据,除了修改drv_uart.c文件外,还需要修改其他的东西吗?注意:硬件环境已经链接GPIOD5和GPIOD6,并且收发已经做交叉
查看更多
看芯片手册,PA2 和 PA3 可以直接复用为 UART1
但是,PD5 和 PD6 复用为 UART1 的时候需要引脚的重映射,看一下库文件是否写了引脚重映射的代码。
gd的引脚复用有点儿另类,这个得看手册里的引脚复用配置。你可以写错了复用配置寄存器
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
根据《用户手册》 8.4 小节 “为了扩展 GPIO 的灵活性或外设功能使用,通过配置 AFIO 端口配置寄存器(AFIOPCF0/AFIO_PCF1),每个 I/O 引脚都可以配置多达 4 种不同的功能。通过使用外设 IO 的重映射功能可以选择合适的引脚位置。”
根据《用户手册》 8.5.10. AFIO 端口配置寄存器 0 (AFIO PCF0) 小节需要设置该寄存器的值
根据BSP的代码,发现在初始化的时候并没有进行重映射的操作,所以你需要自己添加重映射的代码
操作方法是(方法是 “使能AFIO的时钟 + 开启UART1重映射的功能”,调用的函数传参不知道对不对,手里没板子没法验证你验证一下)
1-使能时钟
2-开启 UART1 重映射
你好,我在初始化函数中加入重映射的函数gpio_pin_remap_config(GPIO_USART1_REMAP, ENABLE),将这个加入到gd32_uart_gpio_init函数内部,没有响应,不知道该做什么修改了
@qing8548 还有使能 AFIO 的时钟
@qing8548 对比一下这个文章 GD32F305 串口的重映射
谢谢,已经知道怎么使用了
@qing8548 嗯嗯,按照这个方法调试一下试试 👍