串口接收外设数据时候,运行到信号量阻塞处Semaphore_pend就卡死,是什么原因。
注:串口发送数据可以成功
Kevin Qiu1:
用的是例程C:\ti\simplelink_cc2640r2_sdk_4_30_00_08\examples\rtos\CC2640R2_LAUNCHXL\drivers\uartecho吗
user4090300:
回复 Kevin Qiu1:
用的是例程C:\ti\tirtos_cc13xx_cc26xx_2_21_01_08\examples\TI\CC2650_LAUNCHXL\drivers\uartecho
Kevin Qiu1:
回复 user4090300:
看下这里的说明:dev.ti.com/…/node
默认读取是阻塞模式
user4090300:
回复 Kevin Qiu1:
看了文档说明,将板卡上的串口收发连到了一起,仍然未收到数据。
YiKai Chen:
回复 user4090300:
原始uartecho例程沒有用Semaphore_pend阿,你是不是用到修改過的例程,建議你重新import一份新的uartecho例程再測試看看
user4090300:
回复 YiKai Chen:
上午重装了IAR环境,重新导入示例程序。软件修改情况:根据硬件端口定义重新设置了Board_UART_RX、Board_UART_TX,串口发送数据和接收数据分别建了一个任务。硬件这边的连接情况是:cc2640处理器的uart串口挂接EC20模块,将EC20的串口收发连接到了一起。故障现象是:串口可以打开,可以通过串口发送AT指令,接收数据的任务调度函数UART_read(uart, &recputput, 3)收不到EC20反馈的数据。
user4090300:
回复 user4090300:
YiKai Chen:
回复 user4090300:
這個根本不是原始的UARTecho例程,原始的檔案應該如附件
uartecho.c
user4090300:
回复 YiKai Chen:
您发的这个是确实是例程文件,我用的也是这个uartecho.c文件。我跟您发的截图是跟进到uart_read()这个函数后的底层操作,也就是UARTCC26XX.c这个文件中的内容。
YiKai Chen:
回复 user4090300:
你是卡在UART_read還是UART_write? 硬件是自己做的嗎?