STM32学习1。。。

来源:互联网 发布:章燎原的学历知乎 编辑:程序博客网 时间:2024/04/30 14:38

  前两天拿到开发板。。。开始搭建开发环境

 

经过改进最后还是采用比较熟悉的KEIL 的改进版RMDK进行开发!~(51就是采用KEIL)

 

整个环境配置下来,算是熟悉环境了!参考前几天的积累,动手写个代码点亮一下小灯吧~~

 

简单写了一个代码后,下载完毕后,小灯一点反应没有~  

 

奇怪。。。 用软件仿真单步调试都能看到对应的IO的电平变化呢。。自己检查对照电路确认无误后

始检查软件

 

经过仔细检查,终于找到不能点亮小灯的问题所在了,
原来是GPIO端口的时钟没有使能。

 

得出问题

1、
系统主程序初始化的过程中,
一定要先对外设涉及到的时钟需要通过RCC配置使能外设时钟
然后再进行其他功能设置

 

小灯的初始化 配置函数如下:

void Led_Init(void)

{

 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); // 开启GPIOB的总线时钟    一定要使能 否则IO口不工作
 
 GPIO_InitTypeDef GPIO_InitStructure;      //定义GPIO初始化结构体变量
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12
        | GPIO_Pin_13
        | GPIO_Pin_14 ; //结构体变量中GPIO_Pin赋值为GPIO_Pin_All;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //结构体变量中GPIO_Speed赋值为GPIO_Speed_50MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //结构体变量中GPIO_Mode赋值为GPIO_Mode_Out_PP
 GPIO_Init(GPIOB,&GPIO_InitStructure);  

}

 

 

以后要注意这个教训了~~~