新手问题,关于systick的

2019-07-20 07:18发布

自己写了个程序,但调用的delay函数一直是死循环,经过debug发现是systick->load时钟为0造成的,求问这是什么原因?

systick.png


初始化的时候已经做了:
HAL_Init();                     
Stm32_Clock_Init(360,25,2,8);
delay_init(180);  
__HAL_RCC_GPIOB_CLK_ENABLE();   

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
a6511629
1楼-- · 2019-07-20 11:28
问题解决了,发现stm32f4xx_hal_timebase_tim_template.c文件里面有HAL_InitTick函数,在这个函数存在的情况下原来的weak HAL_InitTick函数没有起作用,所以systick没有初始化成功。是我用的模板不对,多了个stm32f4xx_hal_timebase_tim_template.c文件。
taizonglai
2楼-- · 2019-07-20 12:12
 精彩回答 2  元偷偷看……
szczyb1314
3楼-- · 2019-07-20 18:01
你用了系统?这个是带系统的程序采用的
a6511629
4楼-- · 2019-07-20 18:09
zuozhongkai 发表于 2018-5-26 11:58
明显的systick配置的问题,systick就那3,4个寄存器,看寄存器的描述,检查配置

用的delay和sys文件都是模板里的,难道不是配置好的吗?就是找不到配置的地方
a6511629
5楼-- · 2019-07-20 23:33
 精彩回答 2  元偷偷看……
szczyb1314
6楼-- · 2019-07-21 05:11
a6511629 发表于 2018-5-26 21:28
没用系统啊,自己写了个按键和流水灯的程序,用的模板里的delay和sys文件

你图上贴出来的是系统用的delay_us的函数,用的时钟摘取的方法,你用错了吧

一周热门 更多>