STM32/STM8技术论坛
直播中

范云力

7年用户 201经验值
私信 关注
[问答]

cube产生代码,初始化不成功

请问,第一个函数开头的比较用意何在?
谢谢!!!

回帖(9)

张倩

2018-11-26 08:56:18
是不是超过了systick的24bit的存储范围了。
举报

范云力

2018-11-26 09:07:37
引用: 亲爱的娜娜 发表于 2018-11-26 11:42
是不是超过了systick的24bit的存储范围了。

跟踪代码执行,在运行第一个函数时,SystemCoreClock 变为216000000(系统时钟),看来是超了systick。请问想使能systick,只需要在configureation->NVIC->code generation中勾选time base:system tick timer就可以了吗?systick的中断频率在哪里设置呢?
谢谢!
举报

张倩

2018-11-26 09:25:52
引用: keji730 发表于 2018-11-26 11:53
跟踪代码执行,在运行第一个函数时,SystemCoreClock 变为216000000(系统时钟),看来是超了systick。请问想使能systick,只需要在configureation->NVIC->code generation中勾选time base:system tick timer就可以了吗?systick的中断频率在哪里设置呢?
谢谢! ...

你先看下  HAL_Init(); 这个函数吧。
举报

范云力

2018-11-26 09:44:59
引用: 亲爱的娜娜 发表于 2018-11-26 12:11
你先看下  HAL_Init(); 这个函数吧。

希望是在cubemx中直接配置最好不过了,找了半天,没找到在哪配制。
举报

何壮梦

2018-11-26 09:58:42
是不是 SysTick那块没有设对,一般来请设对了不会出现这种情况
举报

张倩

2018-11-26 10:11:14
我就看看不说话
举报

范云力

2018-11-26 10:24:50
引用: ju978779 发表于 2018-11-26 12:44
是不是 SysTick那块没有设对,一般来请设对了不会出现这种情况

systick有哪些对应的设置项吗?我想设置周期,没找到
举报

徐梦灵

2018-11-26 10:32:08
假设:SystemCoreClock = 216000000
那么:SystemCoreClock * 90e-3 = 19440000 = 0x128a180
传递给SysTick_Config函数的参数值为0x128a180,超出了可接受的最大值0xffffff,因此函数内的第一个return起作用了。

检查你的时钟设置,降低HCLK频率,或者选择其他频率更低的时钟作为SysTick的输入时钟源。
如果你说明了你的MCU型号,可以帮你试试生成的代码,你没说,也就没法试了。
举报

范云力

2018-11-26 10:51:09
引用: 60user58 发表于 2018-11-26 13:17
假设:SystemCoreClock = 216000000
那么:SystemCoreClock * 90e-3 = 19440000 = 0x128a180
传递给SysTick_Config函数的参数值为0x128a180,超出了可接受的最大值0xffffff,因此函数内的第一个return起作用了。

我把sysclk设置成108m是可以的,我用的是stm32f767,代码是使用simulink和stm32cube共同产生的,如果只使用stm32cube产生代码,没有这个问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分