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

【备赛】蓝桥杯嵌入式实现led闪烁

原理

由于蓝桥杯的板子带有锁存器,并且与lcd屏幕有冲突,所以这个就成了考点。

主要就是用定时器来实现,同时也要兼顾lcd的冲突。

一、处理LCD函数

首先来解决与lcd屏幕冲突的问题,把我们所有用到的lcd函数改装一下。

 以下是基本格式

void LCD函数名(void)
{
    uint16_t temp = GPIOC->ODR;
    //其他代码----
    //---
    //---
     GPIOC->ODR = temp;
}

目的是在每一次调用LCD相关的函数时候,把引脚的状态恢复为原态。

二、配置定时器

配置一个基本定时+中断功能即可

通过配置PSC和ARR 把周期设置成0.1s

记得中断使能

三、代码

你要实现某条件下,led闪烁,就需要设置一个标志位,等到他条件满足的时候,在while循环里面就一直不断地关闭led。

与此同时,开启定时器,在中断回调函数里面不断开启

由于while循环执行的更块,所以,每隔0.1s就会进一次中断,也就是每0.1sLED会亮一次。

这样就实现了闪烁的效果。

写一个函数放在while里。        
//满足某条件,就开启TIM1
//满足某条件,就关闭TIM1

这样就可以实现自由控制是否闪烁

int main()
{
    HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);//先关闭锁存器
  
    LCD_Init();
    LCD_Clear(Black);
    LCD_SetBackColor(Black);
    LCD_SetTextColor(White);

    //其他代码
    //-----------
   
    //-----------
    //其他代码

    while()
    { 
        
    //其他代码------------     
写一个函数放在while里。        
//满足某条件,就开启TIM1
//满足某条件,就关闭TIM1

//这样就可以实现自由控制是否闪烁


        if(标志位条件)
        {
          HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
          HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7 << 2, GPIO_PIN_SET);
          HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
        }

    //其他代码----------
    }
    

}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7 << 2, GPIO_PIN_RESET); // 2闪烁
	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);

}

相关文章:

  • Django中使用不同种类缓存的完整案例
  • 实验:IS-IS认证。
  • C++语言的测试覆盖率
  • freertos韦东山---事件组以及实验
  • 在Ubuntu内网环境中为Gogs配置HTTPS访问(通过Apache反向代理使用IP地址)
  • 使用NVM管理nodejs
  • Redis 在 Java 中的使用
  • C++假期练习
  • 批量改CAD图层颜色——CAD c#二次开发
  • Rocketmq2
  • 250207-MacOS修改Ollama模型下载及运行的路径
  • DHCP Snooping各种场景实验案例
  • 国外注册的商标如何在中国获得保护!
  • 深入理解矩阵乘积的导数:以线性回归损失函数为例
  • Lisp语言的安全协议
  • 计算机网络——VLAN虚拟局域网的概念与基本原理
  • 【百日精通JAVA | SQL篇 | 第四篇】约束
  • C++中的多态和模板
  • 3. go-zero中如何使用redis
  • C#“与AI的奇妙结合”
  • 台湾做系统集成的公司网站/seo营销网站的设计标准
  • 优惠券网站怎么做代理/怎样制作网页新手自学入门
  • 网站建设后运维合同/友链交易平台源码
  • 个人做企业网站/百度公司在哪里
  • 营销型网站建设总结/推广普通话标语
  • 超炫html5网站模板/提升关键词排名软件哪家好