-
Triton.zhang 发表于 2011-9-23 18:02
1. SPI是主从模式的串行接口,所有的操作都是由SPI的主机发起
2. 实时性要求不高的应用,可以使用定时器, ...
大虾,求支持。来给例程配置看看。谢谢!:victory:
-
:congra:谢谢!!!!!!
-
大侠,请问您最后的解决方案。谢谢!!!:carnation: :congratulate:
-
恭喜恭喜!!
-
不好意思,没有。
-
大侠,为何一去不复返?
下面一个疑点还请指教:我采用一般的接收中断来接收数据,即每接收一个字节进入中断;每次接收一字节前使能定时器,若在3.5个字符内优先进入接收中断,则在此关闭定时中断。如此反复。如果接收数据是小于等于八个字节,运行没问题;如果接收数据超过8个字节,接收8个字节后就进入定时中断了,无法正常接收剩余的字节了;但是调试时却是可以全部接受到超过的8个字节。:puzzle:
-
谢谢您的回复。
UARTCharGet(UART0_BASE);也没有说获取的是TXfifo还是RXfifo中的数据啊。
这个还真没注意。关键是数据主机发送数据快了就会偶尔出现这种情况。而且是在从机接收一个请求,并响应请求之后,才有接收了这段响应的数据。:cold:
-
大侠,下午好!
又出新问题,在从机接收完数据并发送之后,部分情况,从机发送的数据又被自己接收回来,怎么办?:puzzle:
[ 本帖最后由 benbending 于 2013-2-18 15:38 编辑 ]
-
终于找到问题所在,一味按照例程也不行,呵呵呵。:titter:
[ 本帖最后由 benbending 于 2013-2-18 13:14 编辑 ]
-
好像可以了,函数选错了。谢谢。
[ 本帖最后由 benbending 于 2013-2-18 09:52 编辑 ]
-
谢谢!
在中断程序中用while循环把接收fifo的数据全部读出,放入协议处理程序中开辟的缓冲区中。这里无法理解,在中断里面读取仅能读到最后一个字节的数据。您是怎么读到所有数据的,求解。:Sweat:
-
我目前想法是在运行过程中,就接收读取数据,读的过程满足FIFO接收中断就进入该中断。但是不成功,尤其红线处的延时,不加,当然数据都可以读到,但是不进中断;加了进中断,但是数据不对。
void RS485Rece( void ){ uint8 temp; //ROM_SysCtlDelay(TheSysClock / 3000); // 此处不延时竟然不可以进入中断。 if(ROM_UARTCharsAvail(UART1_BASE)) // 确认在UART1的接收FIFO里是否有字符 { temp = ROM_UARTCharGetNonBlocking(UART1_BASE); // 从接收FIFO里读取字符 serial_receBuf[ReceCount] = temp; ReceCount++; } }
-
很赞同楼主想法,但是有些疑问,请大侠指教。:)
https://bbs.eeworld.com.cn/thread-366011-1-1.html
-
突然发现UART有个接收超时中断,感觉可以不用定时中断运行。但不知道接收超时中断,超时时间的怎么算?:)
-
打开定时是不是靠使能该时钟,结束之后要不要禁止使能2?谢谢!:titter:
-
找到了,觉得算法好像不一样,已经将其修改。谢谢。
-
果然高见,佩服佩服。:)
-
是的。大侠,厉害,当初就是那样的问题。:Sad:
-
呵呵。要不还是把你的配置程序,我来看看吧。大家共享。:titter:
-
:victory: