当前位置:   article > 正文

FreeRTOS作业day1

FreeRTOS作业day1

使用定时器2让黄灯闪烁

核心代码

man.c

  1. HAL_TIM_Base_Start_IT(&htim1);//以中断的方式打开定时器1,定时器开始工作计数,当时间到达500ms后,执行中断回调函数
  2. HAL_TIM_Base_Start_IT(&htim2);//以中断的方式打开定时器2,定时器开始工作计数,当时间到达1000ms后,执行中断回调函数

gpio.c 

  1. static int flag = 0;//标志LED灯的状态
  2. //每隔500ms和1000ms调用中断回调函数,时间到了就会执行该中断回调函数
  3. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
  4. {
  5. //判断是否是定时器1
  6. if(htim == &htim1)
  7. {
  8. //执行LED灯(绿灯)闪烁的代码
  9. if(flag == 0)
  10. {
  11. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
  12. flag = 1;
  13. }
  14. else if(flag == 1)
  15. {
  16. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
  17. flag = 0;
  18. }
  19. }
  20. else if(htim == &htim2)
  21. {
  22. //执行LED灯(黄灯)闪烁的代码
  23. if(flag == 0)
  24. {
  25. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);
  26. flag = 1;
  27. }
  28. else if(flag == 1)
  29. {
  30. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);
  31. flag = 0;
  32. }
  33. }
  34. }

现象展示: 

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
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/480631
推荐阅读
  

闽ICP备14008679号