CC2538 GPIO控制LED灯遇到奇怪问题
我用的zmesh-1.0.0,我有2个led接在了PC2,pc3上,分别对应HAL_LED_3和HAL_LED_4
经过单步跟踪调试发现:
uint8 ZMacReset( uint8 SetDefaultPIB )
{
byte stat;
byte value;
GPIODirModeSet(BSP_LED_BASE, BSP_LED_ALL, GPIO_DIR_MODE_OUT);
GPIOPinTypeGPIOOutput(BSP_LED_BASE, BSP_LED_ALL);
HalLedSet (HAL_LED_3, HAL_LED_MODE_ON);
HalLedSet (HAL_LED_4, HAL_LED_MODE_ON);
HalLedSet (HAL_LED_3, HAL_LED_MODE_OFF);
HalLedSet (HAL_LED_4, HAL_LED_MODE_OFF);
stat = MAC_MlmeResetReq( SetDefaultPIB );
GPIODirModeSet(BSP_LED_BASE, BSP_LED_ALL, GPIO_DIR_MODE_OUT);
GPIOPinTypeGPIOOutput(BSP_LED_BASE, BSP_LED_ALL);
HalLedSet (HAL_LED_3, HAL_LED_MODE_ON);
HalLedSet (HAL_LED_4, HAL_LED_MODE_ON);
HalLedSet (HAL_LED_3, HAL_LED_MODE_OFF);
HalLedSet (HAL_LED_4, HAL_LED_MODE_OFF);
在ZMacReset函数的MAC_MlmeResetReq调用之前,灯的点亮和熄灭是可以正常控制的,但函数MAC_MlmeResetReq执行完了之后,这2个灯就保持常亮,控制不了了
不知道MAC_MlmeResetReq函数跟GPIO还有什么关系?
去掉HAL_PA_LNA定义就好了,不过具体原因还不知道
这个看名字是控制外部PA、LNA的,应该是抢了你的IO设置。