当前位置: 首页 > article >正文

蓝桥杯4T平台(串口控制LD状态)

知识点:串口(单片机接受)+定时器中断(控制LED闪烁)、

配置

串口

定时器 

代码 

定义变量
uint8_t rx_data;
uint8_t led_flag;
uint16_t cnt=0;
使能 
  HAL_UART_Receive_IT(&huart1,&rx_data,1);
  HAL_TIM_Base_Start_IT(&htim2);
  HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);
定时器中断 
 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
 {   
 if(htim->Instance==TIM2)
 { if(led_flag==1)
	{
	cnt++;
	HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
    HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_10);
	if(cnt>50)
	{
	led_flag=0;
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);
	}
	}
}
 }
串口接受函数 
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(rx_data=='X')
{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_8);
}
if(rx_data=='Y')
{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_9);
}
if(rx_data!='X'&&rx_data!='Y')
{
led_flag=1;
TIM2->CNT=0;
}
HAL_UART_Receive_IT(&huart1,&rx_data,1);
}

http://www.kler.cn/a/570020.html

相关文章:

  • 【Java项目】基于vue的地方美食分享系统
  • Spring配置文件
  • iPhone 镜像 连接错误
  • 2024 ChatGPT大模型技术场景与商业应用视频精讲合集(45课).zip
  • 51单片机课综合项目
  • 京准电钟:NTP校时服务器于安防监控系统应用方案
  • K8S学习之基础五:k8s中node节点亲和性
  • 创建者——建造者模式
  • 直流减速电机控制实验:实验介绍
  • 机器学习数学通关指南
  • AI赋能企业协作4-NL2Sql技术路线
  • 【uniapp】离线打包uniapp为apk详细步骤
  • 碰一碰矩阵发视频源码:从 NFC 触发到 AI 矩阵剪辑
  • Excel文件中物件PPT文档如何保存到本地
  • MindIE 长文本推理
  • pat甲级1002 A+B for Polynomials
  • netty 与 websocket
  • JavaScript阻塞
  • eMMC存储器详解(存储区域结构、EXT_CSD[179]、各分区介绍、主要引脚、命令格式与类型等)
  • 百度权重有什么用?如何查看百度权重?