完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
在使用C6748时 出现一个问题 基于此芯片设计的不同设备在进行协议通讯时 偶尔会出现C6748的通讯端口无法输入输出的情况 若故意设置为错误通讯波特率时 C6748的通讯端口无法输入输出的情况(可以不识别或者不响应发送的命令或协议,但不应该出现此端口后续均无法发送的情况) 也问了ti的人 给不出明确的原因和说法 看下坛里有没有大侠遇到过这种问题 原因是什么?
串口配置初始化: 1、配置管脚为uart模式 2、使能 free_run,URRST,UTRST 3、设置串口的波特率为115200 4、设置串口的数据位(8位)、停止位(1位)和校验位(无校验) 5、设置串口为FIFO模式,设置uart的接收触发为一个字节 6、使能ERBI中断和ELSI中断 串口中断程序: 1、读取IIR寄存器以判断中断类型 2、清除串口1对应的event38中断; 3、根据中断类型进入不同的中断分支 (1)为发送中断:屏蔽接收中断;从缓冲buf中往THR寄存器中发数;若缓冲buf没有新数,禁止发送中断;打开接收中断; (2)为接收中断:屏蔽发送中断;从接收RBR寄存器中读数;打开发送中断;触发上层的接收线程; (3)为接收error中断:判断error类型,读取RBR寄存器,一直到没有错误为止; (4)为超时中断,读取RBR寄存器; 其中将event38中断映射到外部中断5上; 1.C6748串口波特率为115200,每秒连续发送200字节数据;同时,测试终端以14400的波特率向C6748发送数据,发送内容为hijklmn,发送间隔为10ms; 2.C6748在正常输出大概1分钟左右的时间后停止输出; 3.查看C6748停止输出时串口相应的寄存器,IER寄存器的值为0x7;IIR寄存器的值为0x6;LSR寄存器的值刚开始为0xFB,紧接着为0xF9 分析不出原因在哪儿 中断处理函数如下: static unsigned char txArray[256]; static unsigned int length = sizeof(txArray) ; static unsigned int count = 0; static unsigned char receive_buf[128]={0}; unsigned char len = 0; static void UARTIsr() { unsigned int int_id = 0; signed char retVal = -1; int _id = UARTIntStatus(SOC_UART_0_REGS); IntEventClear(SYS_INT_UART0_INT); if(0x1 == int_id) { HWREG(SOC_UART_0_REGS+UART_THR)=txArray[count]; count++; if(count>=length) { count = 0; UARTIntDisable(SOC_UART_0_REGS,UART_INT_TX_EMPTY); } } if(0x2== int_id) { receive_buf[len] = HWREG(SOC_UART_0_REGS+UART_RHR); len++; len = len % 128; SEM_post(handle);//触发上层接收数据线程 } if(0x3== int_id) { while(UARTRxErrorGet(SOC_UART_0_REGS)) { UARTCharGetNonBlocking(SOC_UART_0_REGS); } } if(0x6== int_id) { UARTCharGetNonBlocking(SOC_UART_0_REGS); } } 1、接收中断和异常中断上电后一直使能 2、上层每秒钟发送txArray-buf中的固定数据,当把要发送的数据全部放到发送buf-txArray后,使能发送中断; 3、在开机30s左右给uart发送15个字节左右的数据,正常情况下数据的发送和接收都是正常的,当给uart发送的数据的速率与给定的波特率有偏差时,会触发错误中断,当进行压力试验时(多次重复做这种试验),会出现串口无响应的现象; 4、此时查看C6748停止输出时串口相应的寄存器,IER寄存器的值为0x7;IIR寄存器的值为0x6;LSR寄存器的值刚开始为0xFB,紧接着为0xF9 或者有用过此芯片开发板或者用过此芯片的人是否可解答此问题或者遇到过此问题 如果可以帮做一个试验 看您那边是否有相同情况 |
|
相关推荐
1 条评论
1个回答
|
|
串口中断好像必须要把所有的数据都读走,否则串口不会再响应
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测的硬件连接电路图
2293 浏览 0 评论
677 浏览 0 评论
普中科技F28335开发板中,如何使用aic23播放由代码生成的正弦波
2730 浏览 0 评论
3495 浏览 1 评论
1190 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 11:28 , Processed in 0.808395 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号