找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1911|回复: 7
收起左侧

为什么STM32用库函数点不亮灯,用HAL库却可以

[复制链接]
ID:682846 发表于 2021-5-9 13:44 | 显示全部楼层 |阅读模式
这个是库函数的
void Delay(u32 count)
{
   u32 i=0;
   for(;i<count;i++);
}
int main(void)
{       
  GPIO_InitTypeDef GPIO_InitStructure;
       
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;       
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_Init(GPIOB, &GPIO_InitStructure);


        while(1)
        {
                GPIO_ResetBits(GPIOB,GPIO_Pin_3);
//                GPIO_ResetBits(GPIOB,GPIO_Pin_4);
//                GPIO_ResetBits(GPIOB,GPIO_Pin_5);
                Delay(50);
                GPIO_SetBits(GPIOB,GPIO_Pin_3);
//                GPIO_SetBits(GPIOB,GPIO_Pin_4);
//                GPIO_SetBits(GPIOB,GPIO_Pin_5);
                Delay(50);
        }
}

编译也没问题就是点不亮,但是我用HAL库设置了之后就可以,有没有人知道这是为什么?
回复

使用道具 举报

ID:918085 发表于 2021-5-9 15:20 | 显示全部楼层
你的库函数是不是没做系统初始化,系统时钟是不是都没开启
回复

使用道具 举报

ID:725110 发表于 2021-5-9 18:48 | 显示全部楼层
  Delay(50);看不到吧
回复

使用道具 举报

ID:267719 发表于 2021-5-9 18:48 | 显示全部楼层
两个工程比较下,看时钟是不是配置的一致,HES?HSI?另外仿真跟踪下看看不就知道了?
回复

使用道具 举报

ID:918257 发表于 2021-5-9 20:02 | 显示全部楼层
你好像只初始化了一个端口
回复

使用道具 举报

ID:883242 发表于 2021-5-9 21:56 | 显示全部楼层
stm32型号多了,早期型号你的代码可能对,后期型号很复杂,你还要开AFIO的时钟,还要指定是哪个AFIO。从你的代码上面看,你是看视频或者文本教程学的STM32。

学STM32不要看教程,直接拷贝对应型号的库例程就行了。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:682846 发表于 2021-5-9 21:58 | 显示全部楼层
Hephaestus 发表于 2021-5-9 21:56
stm32型号多了,早期型号你的代码可能对,后期型号很复杂,你还要开AFIO的时钟,还要指定是哪个AFIO。从你 ...

这个里面是由三个灯的,同时控制,只有最后一个灯亮,就很奇怪
回复

使用道具 举报

ID:592807 发表于 2021-5-10 08:30 | 显示全部楼层
Biubiubiu12 发表于 2021-5-9 21:58
这个里面是由三个灯的,同时控制,只有最后一个灯亮,就很奇怪

你只是初始化了GPIOB_3,确想控制3 4  5,三个IO
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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