打印

求助:28234的rs485功能程序问题

[复制链接]
1742|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
初晓2013|  楼主 | 2013-11-13 16:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题主要有两个:
1、串口程序主要是按TI官方例程里面scia_loopback程序改写的,基本没有大的改动,只是改动了GPIO的输出端口设置,另外485芯片中多出一个DE的控制引脚,所以多出一个控制端口。程序使用串口调试助手和usb-485的串口线进行调试,但是从上位机发送数据却发现无法接收,程序一直停在while(SciaRegs.SCIFFRX.bit.RXFFST==0);{} 这个语句上,就是接收一直为空,所以跳不出循环。请各位前辈指导问题可能出在哪里?
2、程序下载后经常出现无法进入主函数的情况,要不然就是跑飞没反应,不知道运行到哪里了,要不然就是进入ILLEAL_ISR中断或者defaultIsr的中断,当然led灯简单的程序不太出现这种情况,所以也想请教一下这个问题的原因是什么,可以解决否?

多谢!

相关帖子

沙发
wenjun_wang86| | 2013-11-13 17:32 | 只看该作者
第一个问题:建议先用示波器看看接收端是否有上位机发送的信号,确认有了,再看SCI模块的配置,一个个对照。
第二个问题:禁止掉看门狗,程序中的定义的数组,一定要控制在数组定义的范围内,如果超出范围,容易出现你说的ILLEAL_ISR中断里面。例如你定义了数组 int a[10] = {0,0,....};然后访问的时候,你用带下角标的方式访问a[i],而这个i数值超过了9,这个时候程序就会出问题!

使用特权

评论回复
板凳
zhangmangui| | 2013-11-13 23:13 | 只看该作者
不管调试UART还是转的485  你可以先将RX和TX短接  自发自收测试
这个通过了就可以做别的了  
程序跑飞等可能是使用指针或者别的做了非法修改  或者堆栈溢出等
可能性较多

使用特权

评论回复
地板
初晓2013|  楼主 | 2013-11-14 00:10 | 只看该作者
zhangmangui 发表于 2013-11-13 23:13
不管调试UART还是转的485  你可以先将RX和TX短接  自发自收测试
这个通过了就可以做别的了  
程序跑飞等可 ...

抱歉,您说的这个短接这个好像不是很明白,是要电路连线实现短接吗?那短接之后它是怎样自收自发的?
版主好勤劳~好勤劳~

使用特权

评论回复
5
初晓2013|  楼主 | 2013-11-14 09:50 | 只看该作者
wenjun_wang86 发表于 2013-11-13 17:32
第一个问题:建议先用示波器看看接收端是否有上位机发送的信号,确认有了,再看SCI模块的配置,一个个对照 ...

抱歉,目前手边没有示波器,还有没有其他方法?

使用特权

评论回复
6
wenjun_wang86| | 2013-11-14 10:49 | 只看该作者
初晓2013 发表于 2013-11-14 09:50
抱歉,目前手边没有示波器,还有没有其他方法?

万用表有吧?量量看有没有波动的电压,有的话就说明有数据,电压非常稳定就说明没有数据。

使用特权

评论回复
7
wangdezhi| | 2013-11-14 16:57 | 只看该作者
回环自测是不需要外接的。

使用特权

评论回复
8
wangdezhi| | 2013-11-14 16:57 | 只看该作者
是不是中断的问题?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

17

帖子

0

粉丝