FreeRTOS作业day1

文章讲述了在STM32平台上使用定时器2控制GPIO实现黄灯和绿灯的闪烁,并介绍了Keil5下载代码和编译注意事项,以及STM32Cubemx的使用方法,包括芯片选择、调试设置、时钟配置、代码生成和GPIO配置等。
摘要由CSDN通过智能技术生成

使用定时器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
 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值