DSP硬件流量控制

6个帖子/ 0新
最后一篇
Aeris
离线
最后一次露面:5年10个​​月前
加入:2015-03-05 14:45
DSP硬件流量控制

你好,

我使用带有硬件流控制的DSP样本在引脚上:
TX:P1.0.
rx:p1.2
RTS:P0.7
CTS:P0.5

我使用Pan1740 USB Devkit和PAD从模块中接收串行的蓝牙数据。
当我从我的照片中插入线路(RTS或CTS)到模块时,这一点后崩溃(也许重置)...

PIC的代码:
内联void usart_write(char数据){
RTS = 0;//主机准备发射
而(CTS == 1);//等待设备准备好
而(pirabits.txif == 0);//等待空缓冲区
txreg =数据;
而(txstabits.trmt == 0);//等待传输结束
RTS = 1;//传输结束
}

PIC的RTS是输出和CTS输入。
没有流量控制,垫接收错误的数据,因为模块有时睡眠。

我究竟做错了什么 ?

谢谢,

MorganeVallée.

关键词:
设备:
ingo.
离线
最后一次露面:5个月2周前
格鲁鲁 松下
加入:2014-01-16 11:19
你在哪里得到了定义

你在哪里得到了UART的定义?你确定你是否使用了正确的端口?
TX:P1.0.
rx:p1.2
RTS:P0.7
CTS:P0.5

也许它也是凯基回归?或者Baudrate未正确设置。因此,可能发生许多可能的原因。很难说它完全是什么。你能描述一下更多细节吗?

您可以使用Terra术语检查它,例如本指南中有一些示例:
http://pideu.panasonic.de/files/documents/wm%20documents/pan1740/pan1740 ...

此致,
ingo.

Aeris
离线
最后一次露面:5年10个​​月前
加入:2015-03-05 14:45
对于PIN配置:

对于PIN配置:
#define uart1_tx_port gpio_port_1.
#define uart1_tx_pin gpio_pin_0.
#define uart1_rx_port gpio_port_1.
#define uart1_rx_pin gpio_pin_2.
#define uart1_rts_port gpio_port_0.
#define uart1_rts_pin gpio_pin_7.
#define uart1_cts_port gpio_port_0.
#define uart1_cts_pin gpio_pin_5.

对于波特率,我添加了这一点:
#define uart_baudrate_19k2 52.

没有流量控制,我没有这个问题。在任何情况下,我都有cr和lf char。
我不使用默认引脚。

我尝试3和5V。
我尝试使用USB FTDI UART,它的工作。

这看起来来自我的照片程序,也许我的流量控制的工具不会太严格。

Aeris
离线
最后一次露面:5年10个​​月前
加入:2015-03-05 14:45
我看到了我的实现是

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

我尝试使用新的。

Aeris
离线
最后一次露面:5年10个​​月前
加入:2015-03-05 14:45
哼,我是另一个数据

哼,我另一个有一个数据损坏问题,可能是因为我在模块唤醒之前发送数据。
但代码正在等待:
内联void usart_write(char数据){
而(pirabits.txif == 0);//等待空缓冲区
而(txstabits.trmt == 0);//等待传输结束

而(CTS == 1);//等待设备准备好

txreg =数据;
}

不幸的是,我尝试在发送等待唤醒之前添加100μs延迟。

Aeris
离线
最后一次露面:5年10个​​月前
加入:2015-03-05 14:45
解决,只是一张照片

解决了,只是一个pic配置问题,需要添加:
anselcbits.ansc2 = 0;//在RC2输入上禁用模拟

代码工作。

主题锁定