impulsehu 发表于 2019-3-2 13:41:30

STM32 CubeMX生成点灯代码的问题

新手,刚刚入STM32坑,使用STM32 CubeMX生成点灯代码(HAL版本)。可是出现一个问题,百思不得姐,详细看了代码后才发现端倪,如下图:

导致我往某宝上买的十来块的小板子上烧代码运行时(板子是正常的),PC13一直是亮的,main函数里的HAL_GPIO_TogglePin压根就不生效。
就这个问题坑了我一夜,想不明白。我曾经怀疑板子有问题,可是直接用keil写的库函数版本点灯运行是正常的。

我的STM32 CubeMX版本截图如下:


后来将第一图中的红色框代码注释(或挪到GPIO配置初始代码)之后正常。

不知道大家有没有这个问题存在。STM32 CubeMX还有多少坑~

toofree 发表于 2019-3-2 15:42:52

跟这条函数半毛钱关系没有,刚给你测试过了。


wenyangzeng 发表于 2019-3-2 16:23:13

CubeMX应该是针对下拉点亮LED的板子预先拉高GPIO口,这样初始化GPIO后LED是熄灭的。可能刚好楼主是高电平点亮LED的设置。把它改成:
HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN RESET);即可

impulsehu 发表于 2019-3-2 18:18:51

wenyangzeng 发表于 2019-3-2 16:23
CubeMX应该是针对下拉点亮LED的板子预先拉高GPIO口,这样初始化GPIO后LED是熄灭的。可能刚好楼主是高电平点 ...

我最初也是以为这个问题后来改的GPIO_PIN_SET,默认配置里 GPIO output level 就是LOW,映射到代码就是那行参数为GPIO_PIN_RESET,也是不行。将那个writepin放到 init配置初始后 执行都没问题。

impulsehu 发表于 2019-3-2 18:21:46

impulsehu 发表于 2019-3-2 18:18
我最初也是以为这个问题后来改的GPIO_PIN_SET,默认配置里 GPIO output level 就是LOW,映射到代码就是那 ...

补充一下,开发板里PC13是低电平LED才亮。

impulsehu 发表于 2019-3-2 18:32:56

附一下我的代码

impulsehu 发表于 2019-3-2 18:35:18

toofree 发表于 2019-3-2 15:42
跟这条函数半毛钱关系没有,刚给你测试过了。

你的代码 我试了,确实没有问题,可以TOGGLE。你的GPIO是跟main合在一起的,我的代码是分开的,你可以看看我的代码可以运行吗,其它我没有细看。

toofree 发表于 2019-3-2 19:26:13

本帖最后由 toofree 于 2019-3-2 19:51 编辑

impulsehu 发表于 2019-3-2 18:35
你的代码 我试了,确实没有问题,可以TOGGLE。你的GPIO是跟main合在一起的,我的代码是分开的,你可以看 ...
工程其它文件没有问题,工程中没有加点灯代码。加上后,一切正常。
HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin);
HAL_Delay(500);

可以对比一下,我就加了这两条。




wenyangzeng 发表于 2019-3-2 20:47:40

impulsehu 发表于 2019-3-2 18:32
附一下我的代码

楼主的压缩包有问题,解压缩不了。
看了一下1楼的图,楼主的LED0是在PC1,而楼主的LED0操作是在PC13当然不正常了。

max560 发表于 2019-3-3 15:57:07

STM32 CubeMX 软件好难下,楼主在哪个页面下的?
页: [1] 2
查看完整版本: STM32 CubeMX生成点灯代码的问题