打印

手把手教你嵌入式国产化-杂项-串口重映射到备用引脚(以GD32F103RCT6串口0的PA9和PA10映射...

[复制链接]
1230|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nbutjyy|  楼主 | 2024-3-25 16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
​CSDN主页:不及你的温柔-CSDN博客        文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发
       以GD32F103RCT6串口0的PA9和PA10映射到PB6,PB7为例

       后续项目主要在下面该专栏中发布:
https://blog.csdn.net/qq_62316532/category_12608431.html?spm=1001.2014.3001.5482
       感兴趣的点个关注收藏一下吧!

       电机驱动开发可以跳转:
手把手教你嵌入式国产化-实战项目-无刷电机驱动(1)

        BMS电源系统开发可以跳转:暂未放链接

目录
介绍       在开发GD32为主控的电机驱动的时候,发现定时器0的PWM通道部分引脚和串口1的引脚发生了重合,本着我就要用串口0去Debug的脾气,完成了对串口1的重映射。

寄存器       知识的来源来自于官方,本着这个原则,让我们打开这本厚重的手册!在他的第156页我们能够找到以下:


编辑
       官方给了很详细的寄存器指导,通过AFIO 端口配置寄存器 0AFIO_PCF0
       就很很轻松很简单的完成对串口0的重映射!
       让我们来看看他吧,请把手册翻到第167页,你会得到如下:

编辑       这是寄存器的全貌,以及如下:

编辑
       饭已经喂到大家嘴里了,多的就不用我去说了吧!
       和前面的文章判断定时器通道是否开启详细见:
https://blog.csdn.net/qq_62316532/article/details/136770713?spm=1001.2014.3001.5502https://blog.csdn.net/qq_62316532/article/details/136770713?spm=1001.2014.3001.5502

代码       两者不一样的是,对于重映射,官方考虑到了,所以给了我们直接的函数引用!

​编辑

       这个函数不知道大家熟悉不熟悉!如果你告诉我不熟悉的话,想一下PB3和PB4!
       没错,PB3和PB4用作SWD,我们做普通IO口使用的时候需要重新映射!
       还没想起来?好吧下篇文章就再给你们出个教程吧!
       这里官方给了函数了,那我就愉快的使用了!


编辑
       函数的解释中,会有很多变量和解释,具体的大家自己去GD32库可以详细的了解一下,这其实就是我上面的寄存器的操作,大家肯定一看就会!
       我们使用到的主要是:


编辑
       记得使能重映射的时钟!
       那么写都写了,就把调试好的代码贴出来给大家吧!

       首先你肯定要去使能时钟了!注释都写了,大家自己看看!


编辑
       其次呢,你这两个引脚作为串口功能,你不需要去配置一下这两个引脚嘛


编辑
       就是推挽和模拟啦,大家都懂
       然后去配置一下串口0的参数,也是常规代码!


编辑
       然后我们去愉快的测试一下!


编辑
       这里我开了中断回显,我代码没贴出来,这篇主要是以重映射讲解为主!具体的可以去看我后面发的教程!

结语       自此结束,目前
       GD32F103RCT6 基础型 目前已经完成了教程文档开发、源码编写、UCOSIII移植、函数重写,正在进行电机驱动开发
       GD32F107RCT6 互联型 目前正在制作多路CAN、485、以太网通讯,输入输出隔离的开发以及源码编写和UCOSIII移植
       GD32F407ZET6 目前尚未开始


       我会在后续时机合适的时候发表,关注我!第一时间了解!
​​        文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发
       以GD32F103RCT6串口0的PA9和PA10映射到PB6,PB7为例

       后续项目主要在下面该专栏中发布:
https://blog.csdn.net/qq_62316532/category_12608431.html?spm=1001.2014.3001.5482
       感兴趣的点个关注收藏一下吧!

       电机驱动开发可以跳转:
手把手教你嵌入式国产化-实战项目-无刷电机驱动(1)

        BMS电源系统开发可以跳转:暂未放链接

目录
介绍       在开发GD32为主控的电机驱动的时候,发现定时器0的PWM通道部分引脚和串口1的引脚发生了重合,本着我就要用串口0去Debug的脾气,完成了对串口1的重映射。

寄存器       知识的来源来自于官方,本着这个原则,让我们打开这本厚重的手册!在他的第156页我们能够找到以下:


编辑
       官方给了很详细的寄存器指导,通过AFIO 端口配置寄存器 0AFIO_PCF0
       就很很轻松很简单的完成对串口0的重映射!
       让我们来看看他吧,请把手册翻到第167页,你会得到如下:

编辑       这是寄存器的全貌,以及如下:

编辑
       饭已经喂到大家嘴里了,多的就不用我去说了吧!
       和前面的文章判断定时器通道是否开启详细见:
https://blog.csdn.net/qq_62316532/article/details/136770713?spm=1001.2014.3001.5502https://blog.csdn.net/qq_62316532/article/details/136770713?spm=1001.2014.3001.5502

代码       两者不一样的是,对于重映射,官方考虑到了,所以给了我们直接的函数引用!

​编辑

       这个函数不知道大家熟悉不熟悉!如果你告诉我不熟悉的话,想一下PB3和PB4!
       没错,PB3和PB4用作SWD,我们做普通IO口使用的时候需要重新映射!
       还没想起来?好吧下篇文章就再给你们出个教程吧!
       这里官方给了函数了,那我就愉快的使用了!


编辑
       函数的解释中,会有很多变量和解释,具体的大家自己去GD32库可以详细的了解一下,这其实就是我上面的寄存器的操作,大家肯定一看就会!
       我们使用到的主要是:


编辑
       记得使能重映射的时钟!
       那么写都写了,就把调试好的代码贴出来给大家吧!

       首先你肯定要去使能时钟了!注释都写了,大家自己看看!


编辑
       其次呢,你这两个引脚作为串口功能,你不需要去配置一下这两个引脚嘛


编辑
       就是推挽和模拟啦,大家都懂
       然后去配置一下串口0的参数,也是常规代码!


编辑
       然后我们去愉快的测试一下!


编辑
       这里我开了中断回显,我代码没贴出来,这篇主要是以重映射讲解为主!具体的可以去看我后面发的教程!

结语       自此结束,目前
       GD32F103RCT6 基础型 目前已经完成了教程文档开发、源码编写、UCOSIII移植、函数重写,正在进行电机驱动开发
       GD32F107RCT6 互联型 目前正在制作多路CAN、485、以太网通讯,输入输出隔离的开发以及源码编写和UCOSIII移植
       GD32F407ZET6 目前尚未开始


       我会在后续时机合适的时候发表,关注我!第一时间了解!
​​        文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发
       以GD32F103RCT6串口0的PA9和PA10映射到PB6,PB7为例

       后续项目主要在下面该专栏中发布:
https://blog.csdn.net/qq_62316532/category_12608431.html?spm=1001.2014.3001.5482
       感兴趣的点个关注收藏一下吧!

       电机驱动开发可以跳转:
手把手教你嵌入式国产化-实战项目-无刷电机驱动(1)

        BMS电源系统开发可以跳转:暂未放链接

目录
介绍       在开发GD32为主控的电机驱动的时候,发现定时器0的PWM通道部分引脚和串口1的引脚发生了重合,本着我就要用串口0去Debug的脾气,完成了对串口1的重映射。

寄存器       知识的来源来自于官方,本着这个原则,让我们打开这本厚重的手册!在他的第156页我们能够找到以下:


编辑       这是寄存器的全貌,以及如下:

https://blog.csdn.net/qq_62316532/article/details/136770713?spm=1001.2014.3001.5502https://blog.csdn.net/qq_62316532/article/details/136770713?spm=1001.2014.3001.5502

代码       两者不一样的是,对于重映射,官方考虑到了,所以给了我们直接的函数引用!

​编辑

       这个函数不知道大家熟悉不熟悉!如果你告诉我不熟悉的话,想一下PB3和PB4!
       没错,PB3和PB4用作SWD,我们做普通IO口使用的时候需要重新映射!
       还没想起来?好吧下篇文章就再给你们出个教程吧!
       这里官方给了函数了,那我就愉快的使用了!


编辑
       记得使能重映射的时钟!
       那么写都写了,就把调试好的代码贴出来给大家吧!

       首先你肯定要去使能时钟了!注释都写了,大家自己看看!


编辑
       就是推挽和模拟啦,大家都懂
       然后去配置一下串口0的参数,也是常规代码!


编辑
       这里我开了中断回显,我代码没贴出来,这篇主要是以重映射讲解为主!具体的可以去看我后面发的教程!

结语       自此结束,目前
       GD32F103RCT6 基础型 目前已经完成了教程文档开发、源码编写、UCOSIII移植、函数重写,正在进行电机驱动开发
       GD32F107RCT6 互联型 目前正在制作多路CAN、485、以太网通讯,输入输出隔离的开发以及源码编写和UCOSIII移植
       GD32F407ZET6 目前尚未开始


       我会在后续时机合适的时候发表,关注我!第一时间了解!

使用特权

评论回复
沙发
tpgf| | 2024-4-2 15:03 | 只看该作者
基本上除了供电引脚以及时钟引脚   是不是所有的引脚都可以进行这样的操作呢

使用特权

评论回复
板凳
xiaoqizi| | 2024-4-2 15:42 | 只看该作者
如果一个引脚的两个功能都要使用的话 怎么板呢

使用特权

评论回复
地板
wowu| | 2024-4-2 21:42 | 只看该作者
重映射的话  需要配置哪个引脚的寄存器呢

使用特权

评论回复
5
wakayi| | 2024-4-2 22:14 | 只看该作者
同一个引脚 可以在启用它的第二功能的同时被重映射吗

使用特权

评论回复
6
renzheshengui| | 2024-4-2 22:46 | 只看该作者
可以使用下载引脚进行重映射吗

使用特权

评论回复
7
paotangsan| | 2024-4-2 23:18 | 只看该作者
串口可以重映射到其他的功能的引脚上吗

使用特权

评论回复
8
linfelix| | 2024-4-6 21:20 | 只看该作者
查阅 GD32F103RCT6 的数据手册,了解串口0(UART0)默认的引脚分配。通常,串口0的TX(发送)引脚是PA9,RX(接收)引脚是PA10。

使用特权

评论回复
9
olivem55arlowe| | 2024-4-7 11:37 | 只看该作者
需要通过UART控制器的初始化代码来配置UART参数,如波特率、数据位、停止位和校验位。

使用特权

评论回复
10
houjiakai| | 2024-4-7 15:12 | 只看该作者
在嵌入式软件中,需要修改或配置相应的端口功能,将选定的备用引脚配置为UART功能的TX和RX。

使用特权

评论回复
11
sdlls| | 2024-4-7 18:19 | 只看该作者
想要将USART0映射到的备用引脚。在GD32F103RCT6的数据手册中,你可以找到USART0的备用引脚列表。

使用特权

评论回复
12
weifeng90| | 2024-4-8 07:29 | 只看该作者
串口应用比较简单,配置不复杂。

使用特权

评论回复
13
qsrg51| | 2024-4-30 23:18 | 只看该作者
PB3和PB4用作SWD,我们做普通IO口使用的时候需要重新映射!

使用特权

评论回复
14
qsrg51| | 2024-4-30 23:18 | 只看该作者
需要通过UART控制器的初始化代码来配置UART参数,如波特率、数据位、停止位和校验位。

使用特权

评论回复
15
qsrg51| | 2024-4-30 23:18 | 只看该作者
串口0(UART0)默认的引脚分配

使用特权

评论回复
16
qsrg51| | 2024-4-30 23:18 | 只看该作者
重映射的话  需要配置哪个引脚的寄存器呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

0

粉丝