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

关于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, 下载次数: 18)
风祭之玉石 回答时间:2018-5-15 13:52:16
这样啊,所以现在还没跳出来.

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版