1/*本程序实现STM开发板上LED灯红绿蓝闪烁*/
2
3
4
5 #include 'stm32f10x.h' // 相当于51单片机中的 #include 6 #include 'stm32f10x_gpio.h' 7 /* 8 9 *由于STM32的GPIO工作模式有8种(输入4种+输出4种) 10 *在GPIO输出之前要先对要操作的GPIO进行配置 11 知识点: 12 一个结构体 13 typedef struct//结构体 14 { 15 uint16_t GPIO_Pin; 16 GPIOSpeed_TypeDef GPIO_Speed; 17 GPIOMode_TypeDef GPIO_Mode; 18 }GPIO_InitTypeDef; 19 三个函数: 20 1、GPIO_Init(GPIOB,&GPIO_InitTypeDef); 21 2、GPIO_ResetBits(GPIOB,GPIO_Pin_5); 这里的意思是给端口5高电平 22 3、GPIO_SetBits(GPIOB,GPIO_Pin_5); 把GPIO引脚设置低电平(红LED灯亮) 23 */ 24 25 //驱动程序:GPIO初始化设置 26 int led_gpio_init_() 27 { 28 GPIO_InitTypeDef GPIO_InitTypeDef;//定义一个结构体变量 29 30 /*使能GPIO的rcc时钟*/ 31 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); 32 33 /*配置GPIO引脚*/ 34 GPIO_InitTypeDef.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_0|GPIO_Pin_1;//使用操作符可以一次使用多个引脚,端口0是绿色 1是蓝色 5是红色 35 GPIO_InitTypeDef.GPIO_Speed = GPIO_Speed_50MHz;//设置输出速率50MHz 36 GPIO_InitTypeDef.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 37 /*初始化*/ 38 GPIO_Init(GPIOB,&GPIO_InitTypeDef);//参数一选择GPIO外设(ABCDE)参数二指向GPIO_InitTypeDef的指针 39 } 40 41 //延时函数 42 void delay() 43 { 44 int i = 10000000; 45 while(i--); 46 } 47 48 //主函数 49 int main(void) 50 { 51 led_gpio_init_();//调用GIPO初始化函数 52 53 /*循环给高低电平实现闪烁*/ 54 while(1) 55 { 56 GPIO_ResetBits(GPIOB,GPIO_Pin_5); 57 delay(); 58 GPIO_SetBits(GPIOB,GPIO_Pin_5); 59 delay(); 60 61 GPIO_ResetBits(GPIOB,GPIO_Pin_0); 62 delay(); 63 GPIO_SetBits(GPIOB,GPIO_Pin_0); 64 delay(); 65 66 GPIO_ResetBits(GPIOB,GPIO_Pin_1); 67 delay(); 68 GPIO_SetBits(GPIOB,GPIO_Pin_1); 69 delay(); 70 } 71 } 下面赋三个上面用到的函数,原处截图,出之STM32f10固件库使用手册中文版手册(这是个好东西,要懂得利用!!!以后开发都是根据这个来编程写函数的) 最后要烧到开发板的,烧程序的软件过程
上一篇:Keil STM32调试,使用ST-Link下载程序时提示“flash timeout.reset the target and try it again”
下一篇:STM新建项目
推荐阅读最新更新时间:2024-11-17 01:15