TI中文支持网
TI专业的中文技术问题搜集分享网站

串口不能进入接收中断

芯片: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);}

赞(0)
未经允许不得转载:TI中文支持网 » 串口不能进入接收中断
分享到: 更多 (0)