STM32CubeMX+流水灯
一、选择型号为stm32f103ve的微控制器
二、基本配置
三、配置LED灯相关的GPIO
鼠标点击PE0~PE7引脚选择GPIO_Output
四、配置定时器
五、生成代码
在main.c文件中插入使能TIM6中断的代码
/* USER CODE BEGIN 2 */ if(HAL_TIM_Base_Start_IT(&htim6)!=HAL_OK) { Error_Handler(); } /* USER CODE END 2 */
在main.c文件中插入TIM6的中断服务函数
/* USER CODE BEGIN PV */ uint16_t num = 0x100; //0x100H=0001 0000 0000B设置亮灯的引脚 /* USER CODE END PV */
/* USER CODE BEGIN 4 */
//添加中断服务回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(TIM6 == htim->Instance)//判断是否为TIM6产生的中断 { num = num>>1; //通过寄存器的移位来改变灯的变化 if(num == 0) num = 0x80; //0x80H=1000 0000B 一轮结束 HAL_GPIO_WritePin(GPIOE,0xff,GPIO_PIN_SET); //所有引脚为低电平 HAL_GPIO_WritePin(GPIOE,num,GPIO_PIN_RESET); //对应的灯点亮
//HAL_GPIO_WritePin(芯片型号,引脚,高低电平)
} } /* USER CODE END 4 */