#define LED1_GPIO_PORT GPIOB #define LED1_GPIO_CLK RCC_APB2Periph_GPIOB #define LED1_GPIO_PIN GPIO_Pin_15 (2)按键GPIO初始化函数 void Key_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /*开启按键端口的时钟*/ RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK,ENABLE); //选择按键的引...
#define LED_B_GPIO_CLK RCC_APB2Periph_GPIOB // 直接操作寄存器的方法控制IO #define digitalHi(port, pin) do {port->BSRR |= pin;} while (0) // 置位 #define digitalLo(port, pin) do {port->BRR |= pin;} while (0) // 复位 #define digitalToggle(port, pin) do {port->ODR ^= p...
/* USER CODE BEGIN WHILE */while(1){HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET);HAL_Delay(1000);HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET);HAL_Delay(1000);/* USER CODE END WHILE */ 不过,这代码还不够简洁,让我们再学习一个API,GPIO输出反转函数 HAL_GPIO...
GPIO_PuPd = GPIO_PuPd_DOWN; /*使用上面的结构体初始化按键 */ GPIO_Init(KEY1_INT_GPIO_PORT, &GPIO_InitStructure); /*连接 EXTI 中断源 到key1引脚 */ SYSCFG_EXTILineConfig(KEY1_INT_EXTI_PORTSOURCE,KEY1_INT_EXTI_PINSOURCE); /*选择 EXTI 中断源 */ EXTI_InitStructure.EXTI_Line = KEY1_INT...
#define KEY1_INT_EXTI_IRQ EXTI0_IRQn #define KEY1_IRQHandler EXTI0_IRQHandler #define KEY2_INT_GPIO_PORT GPIOC #define KEY2_INT_GPIO_CLK (RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO) #define KEY2_INT_GPIO_PIN GPIO_Pin_13 #define KEY2_INT_EXTI_PORTSOURCE GPIO_PortSourceGPIOC ...
#define LED2_ON digitalLo(LED2_GPIO_PORT,LED2_GPIO_PIN) 这部分宏控制LED亮灭的操作是直接向BSRR、BRR和ODR这三个寄存器写入控制指令来实现的,对BSRR写1输出高电平,对BRR写1输出低电平,对ODR寄存器某位进行异或操作可反转位的状态。代码中的“\”是C语言中的续行符语法,表示续行符的下一行与续行符...
int j; //GPIOC->BRR = GPIO_Pin_0; //关闭0号位的LEDGPIO_SetBits(GPIOC, GPIO_Pin_All); while (1) //无限循环 { for (j = 0; j < 8; j++) //遍历0到7号位 { on(j); //打开j号位的LED delay(0xfffff); //延时 off(j); //关闭j号位的LED delay...
GPIO功能描述 GPIO功能描述 每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 GPIO端口的每个位可以由软件分别配置成多种模式。─输入浮空...
}//输出为低电平#definedigitalToggle(p,i) {p->ODR ^=i;}//输出反转状态/* 定义控制IO的宏 */#defineLED1_TOGGLE digitalToggle(LED1_GPIO_PORT,LED1_GPIO_PIN)#defineLED1_OFF digitalHi(LED1_GPIO_PORT,LED1_GPIO_PIN)#defineLED1_ON digitalLo(LED1_GPIO_PORT,LED1_GPIO_PIN)//红#defineLED_...
第六章 GPIO输出—使用固件库控制LED 1. 硬件设计 在开发板上面与LED的连接见图,这是一个RGB灯,里面由红蓝绿三个小灯构成, 使用PWM控制时可以混合成256不同的颜色。 2. 软件设计 为了使工程更加有条理和方便迁移,我们把LED灯控制相关的代码分别独立存储。在“工程模板”