STM32Cube创建工程时钟LED没有闪烁

2019-07-14 15:08发布


问题如题。在STM32CubeMX中创建了一个工程,选设了GPIO——开发板上的3个LED分别连接在PC7、PB7、PB14上因此选设这3个口,并分别命名为LED1,LED2,LED3;在Cube中时钟的设置只有HSI RC的显示为正常 {MOD},LSE、HSE都显示为灰 {MOD}的不可选状态,因此选择前者。一切设置好生成工程后在IAR下编译下载都正常,但LED没有闪烁,程序运行后好像时钟不计数一样——永远在初始态,因为采用的是HSI RC内部振荡器,无法用示波器查看,请问是什么原因?在while(1)中:
HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,LED3_Pin,GPIO_PIN_SET);
HAL_Delay(5000);
HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,LED3_Pin,GPIO_PIN_RESET);
HAL_Delay(5000);
结果是LED 亮以后永远不灭了——没有闪烁!
先谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
HELLOKITTYNEW
1楼-- · 2019-07-15 18:02
zhe0010 发表于 2018-12-18 15:51
开GPIO的时钟了吗?

在CUBE中设置了GPIO和时钟树直接可以看到打开了 GPIO时钟。为了简化问题,已用ARMmbed工程绕开后续问题,谢谢。
btwerwer
2楼-- · 2019-07-15 22:08
 精彩回答 2  元偷偷看……
zhe0010
3楼-- · 2019-07-15 23:23
HELLOKITTYNEW 发表于 2018-12-18 16:02
在CUBE中设置了GPIO和时钟树直接可以看到打开了 GPIO时钟。为了简化问题,已用ARMmbed工程绕开后续问题,谢谢。

查一下代码中是否有
__HAL_RCC_GPIOD_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();
这样的打开时钟的语句,这是打开GPIO时钟的函数

也不排除Cube生产的代码有Bug导致运行不正常的问题,我就曾发现过几个,还有就是看看《勘误表》是不是有什麽特别的说明
HELLOKITTYNEW
4楼-- · 2019-07-16 04:33
zhe0010 发表于 2018-12-18 16:25
查一下代码中是否有
__HAL_RCC_GPIOD_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();

谢谢

一周热门 更多>