完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用高级定时器tiM1输出比较模式控制步进电机,然后通过蓝牙与手机上的app通信,当我把TIM_CtrlPWMOutputs(TIM1, ENABLE);去掉后(其他定时器配置都不注释掉),手机上的可以显示STM32串口发来的速度信息,但是此时是没有pwm输出的,那就说明我的串口配置是正常的,但是我加上TIM_CtrlPWMOutputs(TIM1, ENABLE);后,stm32就无法发送信息了,(一开始以为是蓝牙有问题,后来用电脑上的串口助手发现也不能受到)但是我通过手机可以控制步进电机的速度,说明接受是可以的。我以为TIM_CtrlPWMOutputs()这个函数对usart1有干扰,我看了下源码,跟usart1没有半毛钱关系啊,我还试了一下直接操作寄存器,也还是一样的效果。对此感觉很奇怪,这是不是又是stm32f103的一个bug?我把代码也上传分享一下,亲测可用的除了以上一点小bug,是57步进电机配合tb6600驱动的。
|
|
相关推荐
1个回答
|
|
根据你的描述,问题可能出现在STM32的定时器和USART1之间的冲突。以下是一些可能的原因和解决方案:
1. **定时器和USART1共享相同的时钟源**:STM32的高级定时器(如TIM1)和USART1可能共享相同的时钟源。当你启用TIM1的PWM输出时,可能会影响USART1的时钟,导致无法发送数据。解决方案是检查时钟配置,确保USART1和TIM1使用不同的时钟源。 2. **GPIO复用冲突**:STM32的GPIO引脚可以复用为不同的功能,如定时器输出和USART1的TX/RX。如果TIM1的PWM输出和USART1的TX/RX共用同一个引脚,可能会导致冲突。解决方案是检查GPIO配置,确保TIM1的PWM输出和USART1的TX/RX使用不同的引脚。 3. **中断优先级冲突**:STM32的中断优先级可能影响USART1的发送。如果TIM1的中断优先级高于USART1的中断优先级,可能会导致USART1的发送被抢占。解决方案是调整中断优先级,确保USART1的中断优先级高于TIM1。 4. **软件问题**:可能是你的代码中存在逻辑错误,导致USART1无法发送数据。检查你的代码,确保在启用TIM1的PWM输出后,USART1的发送逻辑仍然正确。 5. **硬件问题**:如果以上方法都无法解决问题,可能是STM32硬件本身存在问题。尝试使用另一块STM32开发板进行测试,看是否仍然存在相同的问题。 总之,要解决这个问题,你需要从时钟配置、GPIO复用、中断优先级和代码逻辑等方面进行排查。希望这些建议能帮助你找到问题的原因并解决它。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1801 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1684 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
745浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
578浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 09:13 , Processed in 1.036075 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号