OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5950|回复: 7

STM32F103定时器开启关闭异常

[复制链接]

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2014-11-24
在线时间
21 小时
发表于 2014-12-6 08:22:04 | 显示全部楼层 |阅读模式
5金钱
目前想实现的功能是在按下按键key3时实现蜂鸣器的开启与关断,通过判断按键的状态来实现,使用的定时器为TIM3。判断key4的状态实现陀螺仪数据的读取。
目前的现象是如果不加陀螺仪的数据读取程序蜂鸣器也就是定时器可以正常的运行,也可以实现蜂鸣器的关断,单独使用陀螺仪也可以实现陀螺仪的数据读取。
但只要在定时器关闭或者开启后实现陀螺仪数据的读取,两者都不能实现其功能。程序如下:
i
[mw_shl_code=c,true]nt main(void) { extern u8 flag_key3; extern u8 flag_key4; SysInit(); while(1) { if(flag_key3==1) { LED1=0; TIM_Cmd(TIM3, DISABLE); // 定时器/ 蜂鸣器关闭 } else { LED1=1; TIM_Cmd(TIM3, ENABLE); //定时器/ 蜂鸣器关闭 } if(flag_key4==1) { SendGyro(); //实现陀螺仪数据的读取 } } 或者程序改为: int main(void) { extern u8 flag_key3; extern u8 flag_key4; SysInit(); while(1) { if(flag_key3==1) { LED1=0; TIM_Cmd(TIM3, DISABLE); // 定时器/ 蜂鸣器关闭 SendGyro(); //实现陀螺仪数据的读取 } else { LED1=1; TIM_Cmd(TIM3, ENABLE); //定时器/ 蜂鸣器关闭 } }[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

最终问题出在供电不足的情况~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2014-11-24
在线时间
21 小时
 楼主| 发表于 2014-12-6 08:22:05 | 显示全部楼层
最终问题出在供电不足的情况~
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-7 00:25:33 | 显示全部楼层
是不是你的定时器中断太频繁,导致陀螺仪数据读取出错了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2014-11-24
在线时间
21 小时
 楼主| 发表于 2014-12-9 09:36:37 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我也是怕定时频繁影响陀螺仪的程序正常运行,所以在关闭了定时器才运行陀螺仪的程序,就像上面的第二个程序一样,关闭了定时器的程序再运行陀螺仪的程序,之后程序就出不来了,按键也无法实现其功能,陀螺仪功能也实现不了,还请原子哥赐教,给点建议或者解决的方向,谢啦~
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-9 22:45:25 | 显示全部楼层
你的定时器中断做了什么事?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2014-11-24
在线时间
21 小时
 楼主| 发表于 2014-12-10 08:30:15 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
定时做的工作只是将一个端口取反,其他什么都没做;
目前的情况是程序在原子开发板上能够正常实现定时器的关断和陀螺仪功能的实现,而且是可以同时进行,
但在自己画的主板上单独程序可运行,像上面的代码一样就实现不了;
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-10 21:56:35 | 显示全部楼层
回复【5楼】a515509429:
---------------------------------
这感觉不像是硬件问题啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2014-11-24
在线时间
21 小时
 楼主| 发表于 2014-12-11 09:39:01 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
恩 我也这么感觉的 如果是硬件问题单独也不会好用 我再调试调试找找原因 还是非常感谢原子的热心帮忙~~
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-25 06:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表