打印

GD32F303VCT6 TIMER1_CH2与USART冲突,有解么

[复制链接]
1763|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
orkfire|  楼主 | 2024-7-18 09:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 orkfire 于 2024-7-18 09:50 编辑

现在用GD32F303遇到一个问题,PC3作为一个电池电压检测使用,使用的是ADC2-IN13,ADC2采用的是TIMER1_CH2的外部触发作为ADC的时钟。一开始单独使用ADC也没有问题。后来我需要用USART2(PB10, PB11),其中PB10正好是TIMER1_CH2的PWM输出。只要我把USART2的驱动代码打开。此PWM就直接在PB10上输出了,USART2不能正常工作。如果把ADC2关闭,USART2可以正常工作。现在遇到的问题就是PB10这个引脚如何只让他工作在USART2这个功能上,不去连接到TIMER2_CH2的PWM上。


使用特权

评论回复
沙发
hight1light| | 2024-7-23 11:35 | 只看该作者
分时复用是否可以呢?

使用特权

评论回复
板凳
suiziq| | 2024-7-23 12:44 | 只看该作者
在GD32F303微控制器中,引脚的多功能性可能导致资源冲突,特别是在共享引脚的情况下

使用特权

评论回复
地板
ewyu| | 2024-7-23 13:48 | 只看该作者
在你的案例中,PB10引脚被同时配置为TIMER1_CH2的PWM输出和USART2的TX引脚,这导致了功能冲突。为了解决这个问题,你需要确保PB10引脚只用于USART2的功能,而不被TIMER1占用

使用特权

评论回复
5
hhdhy| | 2024-7-23 15:51 | 只看该作者
检查GD32F303的数据手册,找到PB10引脚的复用功能配置。通常,每个引脚都有多个复用功能选项,你需要选择正确的复用功能以匹配USART2的TX引脚

使用特权

评论回复
6
teaccch| | 2024-7-23 16:00 | 只看该作者
使用GPIO复用功能配置寄存器(如GPIO_AFSELx)来选择PB10引脚的USART2功能

使用特权

评论回复
7
yuliangren| | 2024-7-23 17:02 | 只看该作者
在配置USART2之前,确保TIMER1的PWM输出功能被禁用。这可以通过将TIMER1的通道2配置为非PWM模式来实现

使用特权

评论回复
8
清芯芯清| | 2024-7-23 18:15 | 只看该作者
清除TIMER1的CCER寄存器中与通道2相关的位,以确保通道2不被用作PWM输出

使用特权

评论回复
9
eleg34ance| | 2024-7-24 09:00 | 只看该作者
配置USART2的波特率、数据格式和其他参数确保USART2的TX引脚(PB10)被正确配置为复用功能,并且没有其他功能(如TIMER1的PWM)与之冲突

使用特权

评论回复
10
twinkhahale| | 2024-7-24 10:07 | 只看该作者
在配置完成后,使用调试工具监控PB10引脚的信号,确保它只输出USART2的TX信号,而没有PWM信号

使用特权

评论回复
11
gra22ce| | 2024-7-24 12:32 | 只看该作者
换个IO不就好了,复用就还IO基本就可以解决问题

使用特权

评论回复
12
地瓜patch| | 2024-7-31 21:43 | 只看该作者
换端口啊,端口不够用了 吗e

使用特权

评论回复
13
亚瑟| | 2024-7-31 22:12 | 只看该作者
换一个端口试试

使用特权

评论回复
14
亚瑟| | 2024-7-31 22:26 | 只看该作者
重映射到其他脚

使用特权

评论回复
15
小小蚂蚁举千斤| | 2024-7-31 23:17 | 只看该作者
单独使用没问题,添加后就有冲突了还是添加部分功能冲突导致的

使用特权

评论回复
16
csv7k1| | 2024-8-31 10:51 | 只看该作者
分时复用是否可以呢?

使用特权

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

本版积分规则

2

主题

2

帖子

0

粉丝