stm32编写基本led

LED流水灯程序初始化流程

//1.定义结构体变量

  GPIO_InitTypeDef GPIO_InitStructure;

//2.开启GPIOC的外部时钟,不同的外设开启不同的时钟,IO口复用时两个时钟都要开启。stmf10x_rcc.h

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

//3.设置要控制的GPIO管脚

  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;

//4.设置管脚模式,推挽输出

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

//5.设置GPIOC的引脚速度为50MHz

  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

//6.调用库函数初始化GPIOC,初始化IO口

  GPIO_Init(GPIOC,&GPIO_InitStructure);

//7.关闭所有LED等灯,GPIO_ResetBits(,);GPIO_SetBits(,);置位和清0函数

  GPIO_SetBits(GPIOC,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5);

寄存器方式

  GPIO_TypeDef * GPIOx; 

  GPI0x=GPIOA; 

//开启GPIOA外设时钟

  GPIOx->APB2ENR|=1<<2;

//配置GPIOA.3 4 5为推挽输出50MHZ

  GPIOx->CRL|=0X03<<12|0X03<<16|0X03<<20; 

//GPIOA.3 4 5输出0xff。

  GPIOx->ODR=0XFF; 

LED.H

#ifndef __LED_H 

#define __LED_H 


#include "stm32f10x.h" 


#define LED1(a) if(a) \ 

                GPIO_SetBits(GPIOC,GPIO_Pin_3);\ 

                else    \ 

                GPIO_ResetBits(GPIOC,GPIO_Pin_3); 


#define LED2(a) if(a) \ 

                GPIO_SetBits(GPIOC,GPIO_Pin_4);\ 

                else    \ 

                GPIO_ResetBits(GPIOC,GPIO_Pin_4); 


#define LED3(a) if(a) \ 

                GPIO_SetBits(GPIOC,GPIO_Pin_5);\ 

                else    \ 

                GPIO_ResetBits(GPIOC,GPIO_Pin_5); 



void GPIO_Config(void); 


#endif

"\"为行连接符,表示本行与上一行属于同一代码行.  

端口设置可以使用“sys.h“下的PXout(n)=0/1;PXin(n);来进行设置

http://www.makeru.com.cn/live/4034_2561.html?s=165154

基于STM32物联网项目WebServer+Zigbee组网开发

http://www.makeru.com.cn/live/4034_2435.html?s=165154

学了这么久,物联网操作系统你整明白没?

http://www.makeru.com.cn/live/4034_2420.html?s=165154

万物智联,物联网终端设备如何交流?

(stm32 USART串口应用)                                                                         

http://www.makeru.com.cn/live/1392_1164.html?s=165154

你可能感兴趣的:(stm32编写基本led)