OpenEdv-开源电子网

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

请问一下原子哥SysTick_Handler服务函数为什么不执行

[复制链接]

15

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2017-2-21
在线时间
159 小时
发表于 2018-12-2 19:42:22 | 显示全部楼层 |阅读模式
1金钱
由于一个工程文件需要移植一下,,之前的一个工程文件中一直使用的是SysTick_Handler中断服务函数来处理一些比较实时的数据,,但是现在使用了原子哥的这个延时函数,,其中也直接关闭掉了原子哥的延时函数中的SysTick_Handler服务函数,,但是现在自己测试发现写在最原始的这个点的服务函数会自动不执行,,我觉的应该是原子哥的延时函数影响了,,,请教一下这个点怎么解决一下我想用这个服务函数来进行处理紧急
QQ截图20181202193343.png

最佳答案

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

需要开SYSTICK中断的, 参考我的这个帖子http://www.openedv.com/forum.php?mod=viewthread&tid=275994
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4523
金钱
4523
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-12-2 19:42:23 | 显示全部楼层
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2018-12-2 20:15:24 | 显示全部楼层
原子的不带rtos的延迟函数,我记得默认是不开中断的,即不会进入中断函数
学无止境
回复

使用道具 举报

5

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2015-8-25
在线时间
56 小时
发表于 2018-12-3 09:13:02 | 显示全部楼层
原子有某个版本的,滴答延时,是不进入中断,直接死等待滴答计时结束。建议把代码贴全点看看。
回复

使用道具 举报

15

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2017-2-21
在线时间
159 小时
 楼主| 发表于 2018-12-3 13:31:41 | 显示全部楼层
warship 发表于 2018-12-3 10:51
需要开SYSTICK中断的,
参考我的这个帖子http://www.openedv.com/forum.php?mod=viewthread&tid=275994

    void SysTick_Configuration(void)
{       
          /* Setup SysTick Timer for 10 msec interrupts  */
          if (SysTick_Config(SystemCoreClock / 1000))                                /*SysTick配置为10ms中断一次*/
          {
            /* Capture error */
            while (1);
          }
  
          /* Configure the SysTick handler priority */
          NVIC_SetPriority(SysTick_IRQn, 0x0);                         /*设置SysTick的中断优选级*/
}
现在我已经配置打开systick时钟了,但是总感觉这样会与原子哥的那个延时函数会有干扰,,原子的那个延时我已经看的一头雾水了,,求解一下我这样配置这个中断服务函数会收到原子最开始的delay_init();的干扰吗,,谢谢
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-12-3 13:41:17 | 显示全部楼层
usb123 发表于 2018-12-3 13:31
void SysTick_Configuration(void)
{       
          /* Setup SysTick Timer for 10 msec interrupts  */

自己不会写就抄别人的,觉得有问题就检验下嘛,楼上的帖子已经讲得很清楚了
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4523
金钱
4523
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-12-3 14:29:22 | 显示全部楼层
usb123 发表于 2018-12-3 13:31
void SysTick_Configuration(void)
{       
          /* Setup SysTick Timer for 10 msec interrupts  */

觉得原子的延时初始化太复杂就直接用我这个替代就行了。
void delay_init(void)
{
  SysTick->LOAD=9000-1;    //装载值设定为9*1000-1=8999  即每ms中断一次
  SysTick->CTRL|=3;           //开启SYSTICK并允许中断
}
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 12:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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