我在zigbee中加入了按键中断,如下,下降沿触发,结果按下之后,一执行就出现系统死机。请问Zigbee中应该怎么设置硬件中断才可以
static void gPIO_CallbackFxn(uint_least8_t index){GPIO_clearInt(index);UART_write(uart, echoPrompt, sizeof(echoPrompt));UART_write(uart, echoPrompt, sizeof(echoPrompt)); } static void zclSampleSw_Init( void ) {////////////////////////////////UART_init();UART_Params_init(&uartParams);uartParams.writeDataMode = UART_DATA_BINARY;uartParams.readDataMode = UART_DATA_BINARY;uartParams.readReturnMode = UART_RETURN_FULL;uartParams.readEcho = UART_ECHO_OFF;uartParams.baudRate = 115200;uart = UART_open(CONFIG_UART_0, &uartParams);if (uart == NULL) {/* UART_open() failed */while (1);}UART_write(uart, echoPrompt, sizeof(echoPrompt));//设置按键中断GPIO_init();GPIO_setCallback(CONFIG_GPIO_3,gPIO_CallbackFxn);GPIO_enableInt(CONFIG_GPIO_3);//以下zigbee初始化代码省略 }
Viki Shi:
请看一下这边的例程:dev.ti.com/…/node
Daoming Liu:
回复 Viki Shi:
中断设置没有问题,只要在Zigbee 任务中使用或者使用zigbee发送数据就会出现问题。与Zigbee无关就没有问题
Viki Shi:
回复 Daoming Liu:
断点看一下,中断函数是否进去了,如果能进去,说明中断本身没问题,看看中断处理内部有没有做对系统产生影响的事情
灰小子:
根据楼主提供的代码,看不出有什么问题。
建议先运行官网例程试一下,没问题的话就是程序问题了。进入调试模式一步一步追一下看死在哪里
Daoming Liu:
回复 灰小子:
嗯,已经发现问题了,是Task的问题,需要使用Semaphore_post(appSemHandle)通知zigbee task处理