DSP硬件流控制

6个职位/0个新职位
最后一篇文章
艾利斯
离线
最后一次见到:5年6个月前
已加入:2015-03-05 14:45
DSP硬件流控制

你好,

我使用带有引脚硬件流控制的DSPS示例:
发送:p1.0
接收:p1.2
RTS:p0.7
电流互感器:p0.5

我使用一个pan1740usbdevkit和一个pad接收来自模块的串行蓝牙数据。
当我插入一条线路(RTS或CTS)从我的PIC模块,这一个崩溃(可能复位)后不久。。。

图片编码:
内联void usart\u write(字符数据){
RTS=0;//主机准备传输
while(CTS==1);//等待设备就绪
同时(PIR1比特.TXIF==0);//等待空缓冲区
TXREG=数据;
而(TXSTAbits.TRMT文件==0);//等待传输结束
RTS=1;//传输结束
}

PIC的RTS是一个输出,CTS是一个输入。
在没有流量控制的情况下,pad接收到错误的数据,因为模块有时会休眠。

我做错什么了?

谢谢,

摩根谷

设备:
英戈
离线
最后一次见到:1个月2周前
上师 松下
已加入:2014-01-16 11:19
你从哪儿弄来的

UART的定义是从哪里来的?您确定使用了正确的端口吗?
发送:p1.0
接收:p1.2
RTS:p0.7
电流互感器:p0.5

也许这也是返航?或者波特率设置不正确。所以有很多可能的失败原因。很难说它到底是什么。你能再详细描述一下吗?

你能用Terra术语检查一下吗?例如,本指南中有一些例子:
http://pideu.panasonic.de/files/Documents/WM%20Documents/PAN1740/PAN1740。。。

顺致敬意,
英戈

艾利斯
离线
最后一次见到:5年6个月前
已加入:2015-03-05 14:45
对于PIN配置:

对于PIN配置:
#定义UART1\U TX\U端口GPIO\U端口\U 1
#定义UART1\U TX\U引脚GPIO\U引脚\U 0
#定义UART1\U RX\U端口GPIO\U端口\U 1
#定义UART1\U RX\U引脚GPIO\U引脚\U 2
#定义UART1\U RTS\U端口GPIO\U端口\U 0
#定义UART1\U RTS\U引脚GPIO\U引脚7
#定义UART1\U CTS\U端口GPIO\U端口\U 0
#定义UART1\U CTS\U引脚GPIO\U引脚5

对于波特率,我加上:
#定义UART\u波特率\u 19K2 52

没有流量控制我就没有这个问题。无论如何,我有CR和LF字符。
我不使用默认PIN。

我试着用3和5伏。
我试着用一个USB-FTDI-UART,它的工作。

这看起来问题来自于我的PIC程序,也许我的流量控制执行不太严格。

艾利斯
离线
最后一次见到:5年6个月前
已加入:2015-03-05 14:45
我看到我的实现是

我看到我的实现是旧的半双工版本。。。

我试着换新的。

艾利斯
离线
最后一次见到:5年6个月前
已加入:2015-03-05 14:45
嗯,我有另一个数据

嗯,我还有一个数据损坏的问题,可能是因为我在模块唤醒前发送了数据。
但代码正在等待:
内联void usart\u write(字符数据){
同时(PIR1比特.TXIF==0);//等待空缓冲区
而(TXSTAbits.TRMT文件==0);//等待传输结束

while(CTS==1);//等待设备就绪

TXREG=数据;
}

很遗憾,我尝试在发送到等待唤醒之前添加100µs延迟。

艾利斯
离线
最后一次见到:5年6个月前
已加入:2015-03-05 14:45
解决了,只是一张照片

已解决,只是一个PIC配置问题,需要添加:
ANSELCbits.ANSC2文件=0;//禁用RC2输入上的模拟

代码起作用了。

主题已锁定