赞
踩
使用定时器2让黄灯闪烁
核心代码
man.c
- HAL_TIM_Base_Start_IT(&htim1);//以中断的方式打开定时器1,定时器开始工作计数,当时间到达500ms后,执行中断回调函数
- HAL_TIM_Base_Start_IT(&htim2);//以中断的方式打开定时器2,定时器开始工作计数,当时间到达1000ms后,执行中断回调函数
gpio.c
- static int flag = 0;//标志LED灯的状态
- //每隔500ms和1000ms调用中断回调函数,时间到了就会执行该中断回调函数
- void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
- {
- //判断是否是定时器1
- if(htim == &htim1)
- {
- //执行LED灯(绿灯)闪烁的代码
- if(flag == 0)
- {
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
- flag = 1;
- }
- else if(flag == 1)
- {
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
- flag = 0;
- }
- }
- else if(htim == &htim2)
- {
- //执行LED灯(黄灯)闪烁的代码
- if(flag == 0)
- {
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);
- flag = 1;
- }
- else if(flag == 1)
- {
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);
- flag = 0;
- }
- }
- }
现象展示:
FreeRTOS作业day1
1.总结keil5下载代码和编译代码需要注意的事项
(1)、编写的代码需要放在CODE BEGIN和CODE END之间,否则重新生成代码会被覆盖。
(2)、下载代码前必须先编译查找错误,并且在魔法棒中的Flash下的Reset and Run勾选上,下载完代码让代码立刻运行,将pack中的Enable取消勾选
2.总结STM32Cubemx的使用方法和需要注意的事项
(1)、先选择芯片型号
(2)、在SYS中,勾选Debug,否则,只能下载一次代码,后续代码都不能下载,单片机锁死
(3)、RCC在配置时钟时,将时钟大小设置为48MHZ
(4)、在Project Manager下的Project中:编译器选择MDK-ARM
(5)、在Project Manager下的Code Generator中:勾选为模块生成独立的.c和.h文件
3.总结STM32Cubemx配置GPIO的方法
(1)、将GPIO设置为输出引脚,左键选择GPIO_Output
(2)、在GPIO设置中,先将GPIO output设置为高电平
定时器配置:
(1)、在Timers中选择一个定时器,将定时器的cloc Source设置为intermal Clock,修改预分频系数和重装载值,最后勾选NVIC Settings下的第一个Enabled
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。