7973|9

117

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

stm32高级定时器主输出使能后,usart1就不能发送只能接收了? [复制链接]

我用高级定时器TIM1输出比较模式控制步进电机,然后通过蓝牙与手机上的app通信,当我把TIM_CtrlPWMOutputs(TIM1, ENABLE);去掉后(其他定时器配置都不注释掉),手机上的可以显示stm32串口发来的速度信息,但是此时是没有pwm输出的,那就说明我的串口配置是正常的,但是我加上TIM_CtrlPWMOutputs(TIM1, ENABLE);后,stm32就无法发送信息了,(一开始以为是蓝牙有问题,后来用电脑上的串口助手发现也不能受到)但是我通过手机可以控制步进电机的速度,说明接受是可以的。我以为TIM_CtrlPWMOutputs()这个函数对usart1有干扰,我看了下源码,跟usart1没有半毛钱关系啊,我还试了一下直接操作寄存器,也还是一样的效果。对此感觉很奇怪,这是不是又是stm32f103的一个bug?我把代码也上传分享一下,亲测可用的我注释也很详细,除了以上一点小bug,是57步进电机配合tb6600驱动的。
57步进电机测试.zip (2.06 MB, 下载次数: 29)
此帖出自stm32/stm8论坛

最新回复

我本来也想找答案的,后来自己搞定了,其实就是很简单的一句话,定时器启动后自动把串口的引脚给拉到定时器那边的功能上去了,只需要在配置定时器的时候关闭你所不需要的引脚功能就可以都正常使用了,     TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Disable;//就这句,一般没有这句,通道就会被配置,串口就挂了     TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;                //比较输出使能 这是我们要用pwm输出口     详情 回复 发表于 2019-7-16 11:36
点赞 关注(1)
 

回复
举报

6040

帖子

195

TA的资源

版主

沙发
 
你仔细看看手册及勘误手册吧,有可能是引脚冲突了
此帖出自stm32/stm8论坛
 
 

回复

80

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
原因肯定是这个引脚被你复用了;解决办法是去查查资料,把引脚的功能分配好,不冲突即可;串口的位置是可以定义到别的端口上去的;
此帖出自stm32/stm8论坛

点评

恩恩,我再试试吧。但是我的程序很简答,我现在只是模块化练习。其他我也没配置,理论上应该不会有冲突吧,除非是库函数有问题,不过我试着用寄存器写,也还是有问题。  详情 回复 发表于 2017-4-24 19:48
 
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

4
 
TANG20051008 发表于 2017-4-24 14:01
原因肯定是这个引脚被你复用了;解决办法是去查查资料,把引脚的功能分配好,不冲突即可;串口的位置是可以 ...

恩恩,我再试试吧。但是我的程序很简答,我现在只是模块化练习。其他我也没配置,理论上应该不会有冲突吧,除非是库函数有问题,不过我试着用寄存器写,也还是有问题。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(中级)

5
 
如果我判断的对,你的问题就是这个引脚复用的冲突;如果是你自己做板,程序自己写,引脚冲突早就发现了;我也注意到了,那个串口,和定时器的输出,冲突了;但具体细节,你要自己查手册;
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

6
 
你好,请问你现在解决了吗?我现在遇到了同样的问题了,真是束手无策啊
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
TANG20051008 发表于 2017-4-27 01:51
如果我判断的对,你的问题就是这个引脚复用的冲突;如果是你自己做板,程序自己写,引脚冲突早就发现了;我 ...

你好,这个引脚冲突在哪里看到的呢?timer1 我用的是PB13,PB14 ,串口1 用的是POA9,PA10。没什么冲突啊?还有串口的位置是可以定义到别的端口上去?指的是用UART2或者其它的吗?
此帖出自stm32/stm8论坛

点评

不好意思,最近有点忙没逛论坛了。我后来也还是没有解决,换了串口也没用。不知道你现在解决了吗  详情 回复 发表于 2017-9-25 21:20
 
 
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

8
 
ltianliang2013 发表于 2017-8-16 23:18
你好,这个引脚冲突在哪里看到的呢?timer1 我用的是PB13,PB14 ,串口1 用的是POA9,PA10。没什么冲突啊 ...

不好意思,最近有点忙没逛论坛了。我后来也还是没有解决,换了串口也没用。不知道你现在解决了吗
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 
ltianliang2013 发表于 2017-8-16 23:18
你好,这个引脚冲突在哪里看到的呢?timer1 我用的是PB13,PB14 ,串口1 用的是POA9,PA10。没什么冲突啊 ...

你好,你用的timer1 是PB13,PB14 ,串口1 用的是POA9,PA10。没什么冲突 ,能不能把你的代码看一下,我这样用出现了冲突
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 

我本来也想找答案的,后来自己搞定了,其实就是很简单的一句话,定时器启动后自动把串口的引脚给拉到定时器那边的功能上去了,只需要在配置定时器的时候关闭你所不需要的引脚功能就可以都正常使用了,

    TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Disable;//就这句,一般没有这句,通道就会被配置,串口就挂了
    TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;                //比较输出使能 这是我们要用pwm输出口

 

此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表