一,跑马灯硬件连接
跑马灯目的实现LED0和LED1交替闪亮,如图所示LED0对应为PA8,LED1对应PD2。
(此时GPIO输出方式为推挽输出,推挽输出可以输出高低电平,从而控制LED的亮灭)
IO口输出高电平,LED灭,输出低电平,LED点亮。
二,库函数介绍
1 头文件:stm32f10x_gpio.h
源文件:stm32f10x_gpio.c
2 重要函数
1个初始化函数: void GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct);
作用:初始化一个或者多个IO口的工作方式和速度。
{
uint16_t GPIO_Pin; 指定要初始化的IO口
GPIOSpeed_TypeDef GPIO_Speed; 设置IO口输出速度
GPIOMode_TypeDef GPIO_Mode; 设置工作模式(推挽输出)
2个读取输入电平函数:
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,unit16_t GPIO_Pin);
作用:读取某个GPIO的输入电平,实际操作GPIOx_IDR寄存器。
例如:GPIO_ReadInputDataBit(GPIOA GPIO_Pin_5);读取GPIOA.5的输入电平
unit16_t GPIO_ReadInputData(GPIO_TypeDef*GPIOx);
作用:读取某组GPIO中的所有IO口输入电平,实际操作GPIOx_IDR寄存器。
2个读取输出电平函数(同上):
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef*GPIOx,unit16_t GPIO_Pin);
作用:读取某个GPIO的输出电平,实际操作GPIOx_ODR寄存器
unit16_t GPIO_ReadOutputData(GPIO_TypeDef*GPIOx);
作用:读取某组GPIO中的所有IO口输出电平,实际操作GPIOx_ODR寄存器。
4个设置输出电平函数:
void GPIO SetBits(GPIO_TypeDef* GPIOx, unit16_t GPIO_Pin);
作用:设置某个IO口输出为高电平,操作于BSRR寄存器。
void GPIO ReseBits(GPIO_TypeDef* GPIOx, unit16_t GPIO_Pin);
作用:设置某个IO口输出为低电平,操作于BRR寄存器。
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, unit16_t GPIO_Pin,BitAction BitVal);
void GPIO_Write(GPIO_TypeDef*GPIOx, unit16_t PortVal) ;
这两个函数也是设置IO口输出电平。
}
三,程序步骤
使能IO口时钟。调用函数RCC_APB2PeriphColckCmd();
初始化IO口模式,调用GPIO_Init();
操作IO口,输出高低电平。
GPIO_Setbits();
GPIO_ResetBits();
四,涉及工程
1,USER部分
stm32f10x_it.c来定义部分中断服务函数
System_stm32f10x.c来定义SystemInit等时钟初始化函数
2,HAREWARE
提供外部硬件相关的驱动函数
3,SYSTEM
包括延时函数,IO口位操作以及串口相关函数
4,CORE
存放固件库核心文件和启动文件
5,FWLIB
存放固件库源文件和头文件
6,README
注意事项
五,具体程序