小弟基于合众达的板子自己仿制了一个DSP开发硬件,现在在调试BIOS视频处理时,出现了一些问题,望各位给予援手。我单独调试串口时,可以实现正常数据收发,但是在BIOS下就出现了串口数据丢失和串口数据错误的现象,我的最终目标是实现对检测的视频中目标的标示,即检测到目标后,将目标的一些信息通过串口发送到电脑中进行后续处理,现在遇到的问题就是检测到目标了,而且我单步调试也发现,目标数据正确,但是在发送到电脑上就出现一直为“00 00”,而且,数据不是一直发送,有丢失现象,望各位大神帮帮忙啊~ 急~ 小弟,用的是TL16C752B并转串芯片,DM642处理芯片
shu wei xiao:
调了接近一周,总算是出点效果,现在的问题是串口可以正常发送了,但是不能正常接收了,而且这个“正常发送”指的是能够按照想法进行发数,但是出来的数据不是特别正确,最高位被置1,次高位有一半被置1。不知道是什么原因,请各位大神帮帮忙~
qinwen Hou:
您好,我最近也在调试串口,我想把一串数据,比如1,2,3,4,5,6顺次发送到上位机,但是在发送时,老是出现丢帧的现象,即1,2,3,4,5,1,4,5,2,3,4,5,1,2,3等,希望得到您的帮助。
shu wei xiao:
回复 qinwen Hou:
你是在什么环境下调试?
qinwen Hou:
回复 shu wei xiao:
CCS3.1
qinwen Hou:
回复 shu wei xiao:
好了,问题解决了,在发送时需要判断THR是否为空,若为空,则发送 ,否则会产生丢帧现象,即旧数据还没发送完,新数据就来了。不过还是谢谢你了。
shu wei xiao:
回复 qinwen Hou:
嗯,不客气,你的意思是,你直接将SEEDDM642_UART_rset(hUart, SEEDDM642_UART_THR, data);中的 SEEDDM642_UART_THR改为0就解决问题了,是吗?
qinwen Hou:
回复 shu wei xiao:
不是的,比如我在发送完一个数据后,判断DM642_UART_rget(THR&0x01)是否为1,若为1,说明发送保持寄存器为空,此时可以发送,否则需要等待。