一:点亮led

 1.led点亮原理

  led的点亮由PC8~15的高低电平控制,引脚的高低电平输入由一个SN74锁存器控制,当锁存器的PD2引脚为高电平(1)时,可以改变右端1D~8D的引脚状态,然后输入到左端控制led。

2:led配置

在软件中将手册里led对应的引脚设置为Output模式,在PGIO中将其设置为默认高电平,led默认为熄灭状态。

3.led点亮代码

void led_show(uint8_t led,uint8_t mode)
{
  HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET)   //PIOD2设置为高电平,也就是打开锁存器
  if(mode)
    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8<<(led-1),GPIO_PIN_RESET);
  else
    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8<<(led-1),GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET)   //PIOD2设置为低电平,也就是关闭锁存器
}

三:解决led与lcd引脚冲突

   2025年用的板子中,led8个引脚完全与lcd重合,在使用时会出现引脚冲突问题。

  led由锁存器控制电平能否输入,所以为了时其使用不被lcd影响可以先将其GPIOD-2置低。但是使用按键控制led的功能时会将其锁存器打开,此时lcd也在不断的更新引脚电平导致引脚冲突再次出现,此时可以在每一个lcd函数中加入保持led引脚输出的电平语句解决如下面中的tem,其功能就是在执行LCD函数后保持原来led引脚的电平值

step1.在lcd初始化前将锁存器设置为低电平,使得后面lcd初始化时不会改变原来led电平值

step2.去所有lcd函数中添加保持原来GPIOC值得语句

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐