学习STM32f103从点灯开始
跟着视频一步一步的模仿. 1、工程的建立,源文件、头文件 2、GPIO的使用 3、函数的定义、使用 4、查找函数的参数 5、查找编译失败原因(中文状态下的符号、缺少符号 ) 6、用st-link下载器烧录程序。 7、实现点灯效果。
**主函数**
//加入初始化头文件
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
int main(void) //主函数
{
/* 在while死循环之前加入初始化代码 */
LED_Init();
while(1) //在里面加入代码点灯 LED高灭,低亮
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13); //传入两个参数,1、端口号,2、管脚号
delay(600);
GPIO_SetBits(GPIOC,GPIO_Pin_13); //GPIO_SetBits:输出高电平,输出设置位;两个参数1、GPIO端口;2、管脚
delay(500);
}
}
/***************************************************************/
led.c
//添加GPIO库件库
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
void LED_Init(void) //函数名
{
//声明结果体的变量名
GPIO_InitTypeDef GPIO_InitStruct;
//使能GPIO外设的时钟.初始化GPIO所对应的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //GPIO外设挂在这个函数上(,)传两个参数,1、它的外设端口(看原理图);2、状态(使能)
//初始化这三个函数
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //GPIO_Mode模式
/*八种模式typedef enum
{ GPIO_Mode_AIN = 0x0,模拟输入
GPIO_Mode_IN_FLOATING = 0x04,浮空输入
GPIO_Mode_IPD = 0x28,下拉输入
GPIO_Mode_IPU = 0x48,上拉输入
GPIO_Mode_Out_OD = 0x14,通用开路输出
GPIO_Mode_Out_PP = 0x10,通用推挽输出
GPIO_Mode_AF_OD = 0x1C,复用开路输出
GPIO_Mode_AF_PP = 0x18,复用推挽输出
}GPIOMode_TypeDef;*/
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13; //管脚号,原理图
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //GPIO的速度
//初始化GPIO这个外设
GPIO_Init(GPIOC,&GPIO_InitStruct); //初始化这个函数()传入两个参数,1、GPIO端口号;2、初始化它的结构体(指针),取&地址符变成一个指针
//先复制结构体名GPIO_InitTypeDef
GPIO_SetBits(GPIOC,GPIO_Pin_13); //GPIO_SetBits:输出高电平,输出设置位;两个参数1、GPIO端口;2、管脚
}
/*驱动外设的步骤:
1、使能它对应的时钟
2、初始化这个外设
必须包涵头文件
*/
在这里插入代码片
部分略
实现
|