芯片:2530
协议栈:mesh1.0.0
问题:如题,我初始化了串口以及接受中断,串口可以发送数据但是接受不到数据,进入不了接收中断,请问是什么问题呢?急求解决!关键代码如下,感谢。
void GenericApp_Init( uint8 task_id ) {GenericApp_TaskID = task_id;GenericApp_NwkState = DEV_INIT;GenericApp_TransID = 0;HalUARTInit();UserUsartInit(); // open the usartIEN0 |= 1<<2;
void UserUsartInit(void) {halUARTCfg_t uartConfig;uartConfig.configured= TRUE;uartConfig.baudRate= HAL_UART_BR_9600;uartConfig.flowControl= FALSE;uartConfig.flowControlThreshold = HAL_UART_FLOW_THRESHOLD;uartConfig.rx.maxBufSize= HAL_UART_RX_BUF_SIZE;uartConfig.tx.maxBufSize= HAL_UART_TX_BUF_SIZE;uartConfig.idleTimeout= HAL_UART_IDLE_TIMEOUT;uartConfig.intEnable= TRUE;uartConfig.callBackFunc= npUartCback;HalUARTOpen(HAL_UART_PORT, &uartConfig); }
Susan Yang:
单纯这些给出的代码的话,感觉没啥问题
您现在是自己的板子?串口使用的是哪个引脚?是否有尝试使用TI例程或者z-tool试一下来排除硬件问题?
另外可以参考下 www.twblogs.net/…/zh-cn
user6069081:
回复 Susan Yang:
请问如果开启了osal_pwrmgr_device( PWRMGR_BATTERY )的话,串口的通讯是否会受到影响?
Susan Yang:
回复 user6069081:
会的,串口的话设备要工作在 ALWAYS ON
user6069081:
回复 Susan Yang:
你好,请问我用以下的代码是否能进入低功耗模式?我在测试中调用一下代码发现电流维持在mA级别,请问我该如何查看芯片进入了PM几的模式呢?
if(events & POWER_SAVE_EVT){// UnInitialize the UART.U0CSR = 0;URX0IE = 0;// 禁止USART0 RX中断使能URX0IF = 0;// 清除USART0 RX中断标志IEN2 &= ~0x04;// 禁止USART0 TX中断使能UTX0IF = 0;// 清除USART0 TX中断标志// P02---将P02设置为高阻态输入P0SEL&= ~(BV(2));P0DIR&= ~(BV(2));P0INP|=BV(2);// P03---将P03设置为高阻态输入P0SEL&= ~(BV(3));P0DIR&= ~(BV(3));P0INP|=BV(3);HalKeyConfig(HAL_KEY_INTERRUPT_ENABLE , OnBoard_KeyCallback);osal_pwrmgr_task_state(GenericApp_TaskID ,PWRMGR_CONSERVE);osal_pwrmgr_device( PWRMGR_BATTERY );return (events ^ POWER_SAVE_EVT);}