LED不亮怎么解决

Posted yuanhuang32

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LED不亮怎么解决相关的知识,希望对你有一定的参考价值。

最近用IAR,玩了一下CC2541.
自己写了个最简单的程序。
 

#include <ioCC2541.h>
 
int main(void)
{

  P1SEL = 0;       // 由注释中的语句删除“//”后得到     //P1SEL = 0; // Configure Port 1 as GPIO

  P1DIR = 0xFF;      //P1DIR = 0xFF; // All port 1 pins (P1.0-P1.7) as output 

  P1_0 = 0;         //P1_0 = 0;

  while(1)
  { 
    for(unsigned short i = 60000;i > 0;i--);
 
    P1_0 = ~P1_0;
  }
  return 0;
}
 
首先是编译不通过,然后main函数里面的第一到三行是将代码注释符号去掉(CTRL+SHIFT+K)后留下的,将变量前的空格全都去除后编译通过了。
然后是在main函数体里面用for循环的延时的代码直接被跳过了,没有生成在可执行代码里面。于是写了一个delay函数调用就好了。
 
IAR真会折腾人啊。另外,我在编辑代码的时候也用到了VScode,不知道是否是不兼容引起的。
 
本以为LED该灯亮起来了。结果不为所动。用万用表量一下电压,在表笔接触到评估版的LED时居然亮起来了。
细看PCBA,也不像虚焊,莫名其妙有没有。换另一块评估版烧录一次点亮。
 
附上几张过程图片:
技术图片
 技术图片
技术图片
 
 
 
最终的代码小学生都懂,如下所示:

#include <ioCC2541.h>
 
void delay(unsigned short ccount);
 
int main(void)
{

P1SEL = 0; // Configure Port 1 as GPIO

P1DIR = 0xFF; // All port 1 pins (P1.0-P1.7) as output 

P1_0 = 0;

  while(1)
  { 
    delay(60000);
    P1_0 = ~P1_0;
  }
  return 0;
}
 
 void delay(unsigned short ccount)
 {  
  do
  {
    ccount--;
  }while(ccount > 0);
 }

启示:
再简单的代码的效果是需要跑了才知道的,在编辑,编译,链接,烧录,硬件运行环境中的任何环节都可能出错。
代码化繁为简是查找问题根源的有效办法;硬件莫名奇妙的问题一定有根源,没时间去分析时换一个硬件试试不失为好方法。

以上是关于LED不亮怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

万用表如何点亮LED灯珠,万用表怎么点亮led灯

金笛短信猫指示灯不亮,怎么解决

嵌入式板子上面的网口两边的灯怎么不亮

为啥 LED 不亮?

正点原子开发板STM32 PWM输出实验 改变LED0为LED1不亮

电脑显示器不亮但是主机以开机怎么解决