1 示例:通过一个按钮控制LED灯亮灭,了解gpio外设寄存器组。
#include "stm32f10x.h"
#include "stm32f10x_pal.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
int main(void)
{
GPIO_InitTypeDef GPIOInitStruct;
uint8_t current = Bit_SET;
uint8_t previous = Bit_SET;
PAL_Init();
// PC13 Out_OD
// GPIOC
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // GPIOC的时钟
GPIOInitStruct.GPIO_Pin = GPIO_Pin_13;
GPIOInitStruct.GPIO_Mode = GPIO_Mode_Out_OD;
GPIOInitStruct.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOC, &GPIOInitStruct);
// GPIO_Write(GPIOC,0);
// PA0 IPU
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // GPIOA的时钟
GPIOInitStruct.GPIO_Pin = GPIO_Pin_0;
GPIOInitStruct.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &GPIOInitStruct);
while(1)
{
previous = current;
current = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);
if(current != p