你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于systick_ctrl寄存器设置与COUNTFLAG标志位使用的关系

[复制链接]
motianlun1111 提问时间:2015-7-29 12:01 /
如标题所示,我再main.c里面自己写的systick的配置函数,自己写的中断函数,如果我配置函数,也就是systick_configuration里面设置寄存器CTRL的bit2,bit1,bit0位为011,也就是8分频,开中断,开始计数,那么我在主函数里面使用的采用判断标志位COUNTFLAG=1写的那个while函数就进不去里面那个等于1这个判断函数,就是我图中的if函数,如果把ctrl寄存器设置成为0x01也就是8分频,不开中断,开始计数,那就能进去,这个是怎么回事呢?
在软件仿真的UART#1中我看printf输出值判断的,printf指向了usart1.
[8O%AWYCC7`8M$XEB)I@XXP.png
~1}_DBO9{BDM8V$`%1[{NSF.png
7 systick 实验 库函数.rar (282.02 KB, 下载次数: 5)
收藏 评论6 发布时间:2015-7-29 12:01

举报

6个回答
stary666 回答时间:2015-7-29 12:32:03
看看,,,,,,,,,,,
motianlun1111 回答时间:2015-7-29 13:38:15
找到原因了,是这样的,如果开了中断,但是却没有中断处理函数,那么系统会进入启动文件上出不来,也就是指向不到那个中断处理函数,然后就卡在那里了,所以就错了
但是val还是在继续往下减,
因为这个是内核里的事,
而程序就停在了启动文件里面
但是如果handler函数有,内容是空的,那就也没事了
中断发生的时候进入一下中断处理函数然后又出来了就,或者中断函数不是空的,执行一下中断,然后出来继续执行,
关键就是要有中断函数,不然开了中断没有中断函数,那就出问题了。
motianlun1111 回答时间:2015-7-29 13:39:04
这点要切记啊,大家和我一样的新手也要切记这一点啊,开了中断,没有中断函数,那么程序就会出问题,一定要有中断函数,哪怕函数是空的内容也没关系,,,
你好我好大家好! 回答时间:2015-7-29 13:54:37
解决就好
motianlun1111 回答时间:2015-7-29 14:08:34
有需要的可以看看我新改的程序
是用v3.5的库,systick部分自己写的函数实现的这个东西, 7 systick 实验 自己编函数实现.rar (283.48 KB, 下载次数: 20)
风祭之玉石 回答时间:2018-5-15 13:52:16
这样啊,所以现在还没跳出来.

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版