搜索
查看: 3615|回复: 15

[STM32F103] STM32 CubeMX生成点灯代码的问题

[复制链接]

该用户从未签到

1

主题

9

帖子

0

蝴蝶豆

初级会员

最后登录
2020-9-27
发表于 2019-3-2 13:41:30 | 显示全部楼层 |阅读模式
新手,刚刚入STM32坑,使用STM32 CubeMX生成点灯代码(HAL版本)。可是出现一个问题,百思不得姐,详细看了代码后才发现端倪,如下图:
error.png
导致我往某宝上买的十来块的小板子上烧代码运行时(板子是正常的),PC13一直是亮的,main函数里的HAL_GPIO_TogglePin压根就不生效。
就这个问题坑了我一夜,想不明白。我曾经怀疑板子有问题,可是直接用keil写的库函数版本点灯运行是正常的。

我的STM32 CubeMX版本截图如下:
gpio.png

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

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

使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    49

    主题

    3724

    帖子

    429

    蝴蝶豆

    论坛元老

    最后登录
    2021-8-7
    发表于 2019-3-2 15:42:52 | 显示全部楼层
    跟这条函数半毛钱关系没有,刚给你测试过了。

    TEST_F103C8T6.rar (3.18 MB, 下载次数: 16)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    74

    主题

    3420

    帖子

    82

    蝴蝶豆

    社区小助手

    最后登录
    2023-11-12
    发表于 2019-3-2 16:23:13 | 显示全部楼层
    CubeMX应该是针对下拉点亮LED的板子预先拉高GPIO口,这样初始化GPIO后LED是熄灭的。可能刚好楼主是高电平点亮LED的设置。把它改成:
    HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN RESET);即可
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2020-9-27
     楼主| 发表于 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配置初始后 执行都没问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2020-9-27
     楼主| 发表于 2019-3-2 18:21:46 | 显示全部楼层
    impulsehu 发表于 2019-3-2 18:18
    我最初也是以为这个问题后来改的GPIO_PIN_SET,默认配置里 GPIO output level 就是LOW,映射到代码就是那 ...

    补充一下,开发板里PC13是低电平LED才亮。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2020-9-27
     楼主| 发表于 2019-3-2 18:32:56 | 显示全部楼层
    附一下我的代码 HAL.rar (410.71 KB, 下载次数: 3)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2020-9-27
     楼主| 发表于 2019-3-2 18:35:18 | 显示全部楼层
    toofree 发表于 2019-3-2 15:42
    跟这条函数半毛钱关系没有,刚给你测试过了。

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

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    49

    主题

    3724

    帖子

    429

    蝴蝶豆

    论坛元老

    最后登录
    2021-8-7
    发表于 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);

    可以对比一下,我就加了这两条。
    HAL(Modify).rar (3.03 MB, 下载次数: 7)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    74

    主题

    3420

    帖子

    82

    蝴蝶豆

    社区小助手

    最后登录
    2023-11-12
    发表于 2019-3-2 20:47:40 | 显示全部楼层

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

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    蝴蝶豆

    新手上路

    最后登录
    2019-3-3
    发表于 2019-3-3 15:57:07 | 显示全部楼层
    STM32 CubeMX 软件好难下,楼主在哪个页面下的?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-5-9 14:26 , Processed in 0.213894 second(s), 42 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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