工具/软件:TI C/C++编译器
我已经下载、编译和调试了开箱即用体验代码。 运行正常、但 LED 输出不受环境光的影响。
问题似乎是编译器不再使用 GPIO 驱动程序库生成正确的代码:
main.c (第85行)调用 initGPIO();
initgpie (main.c 第263-268行)是:
GPIO_setPeripheralModuleFunctionOutputPin (GPIO_PORT_P2、GPIO_PIN0、GPIO_PRIMARY_MODULE_Function);
GPIO_PORT_P2定义为2
"setPeripheralModuleFunctionOutputPin" 以表查找开始:
uint16_t baseAddress = GPIO_PORT_TO_BASI[selectedPort];
但该表包含以下内容(来自调试器):
GPIO_PORT_TO_BASE
0000 0200 FFFF FFFF FFFF
因此、条目2返回 FFFF
问题可能是 GPIO.c 中该表的宏(第53...行):
静态常量 uint16_t GPIO_PORT_TO_BASI[]={
0x00、
#if defined (_MSP430_has _Port1_R_)
_MSP430_BASEADDRESS_Port1_R__、
#Elif defined (_MSP430_has _Port1_)
_MSP430_BASEADDRESS_Port1__、
其他
0xFFFF、
#endif
#if defined (_MSP430_has _port2_R_)
_MSP430_BASEADDRESS_PORT2_R__、
#Elif defined (_MSP430_has _port2_)
_MSP430_BASEADDRESS_PORT2__、
其他
0xFFFF、
#endif
文件"MSP430fr2311h"已定义端口1 (基址为0x200)、但未定义端口2。
为什么? 之前使用的版本(在升级到最新 CCS 之前)。