CC2541 Port 2 导致固件崩溃
大家好,
我做了个自制板子,借鉴的CC2541 Keyfob的设计加了外部电源和DC/AC通道,固件根据BLEperipheral加了功能包。
我用的芯片的P2.0作为外部通道电源的开关,就是ADC读电压的时候是high,其他时候保持low。
但是现在发现在init方程里,只要一设置P2的初始状态,固件在运行的时候就会崩溃,直接卡到FFFFFF不动了。
init里我是这么设置的:
P0SEL = 0xFF; // Configure Port 0 as Periferal Function
P1SEL = 0x3C; // Configure Port 1 as SPI Alt2 else GPIO
P2SEL = 0; // Configure Port 2 as GPIO
P0DIR = 0x00; // Port 0 pins as inputs (ADC)
P1DIR = 0x23; // All port 1 pins (P1.0,P1.1,P1.5) as input else output
P2DIR = 0x1F; // All port 2 pins (P2.0-P2.4) as output
P0 = 0x00; // P0 is for ADC channels
P1 = 0x00; // All pins on port 1 to low
// P2 = 0; // Blows up the stack 这里做任何设置不管是1还是0,固件就跑不了了
请大家帮忙看看是我哪里设置错了?还是硬件设计的问题?
非常感谢!
如果你使用原始的SimpleBLEPeripheral的代码的设置会出现什么情况呢?
检查一下是不是软件里面的硬件映射已经根据您的硬件修改好了
直接套用原始SimpleBLEPeripheral的话固件一运行就直接crash到FFFFF,我尝试了TI给的各种Simple Project的代码,发现但凡有触及到port 2.0的改动都会导致固件运行崩溃,非常的奇怪。
因为我在做这张板子的时候,硬件的PCB设计几乎完全是按照Development Kit围绕CC2541芯片进行布局的,除此之外只是加了供电和每个analog port的外接AC/DC,DC/DC的转换,之前用DK测试的时候一切都运转正常,可是一到自己的板子上port 2.0就完全失控了。
难道是需要到hal等一些源文件里对硬件映射一一修改?
谢谢你的回复!