|
1
3
在评论这篇文章时,有点搞不清谁在传递什么,所以请发表以下评论: 1)简化Atmel代码,使其只输出“Hello World%d”+CR,并不断增加#行。目前,保持com速度为9600波特。从Atmel到USB RS485加密狗的流量是否100%成功接收?在这之前不要继续。 2)在本次Atmel侧设计中,您使用哪一个RS485收发器?市场上有很多垃圾,并不是所有的收发器都是平等的。 3)您在使用哪个USB RS485加密狗?根据(2),只有少数是可靠的。如果使用透明的FTDI USB RS485加密狗,请仔细检查塑料内部压印RS485收发器的位置。FTDI承认,他们推出了一些基于Sipex收发器的片状加密狗电缆。从我们的简要回顾来看,相信是设计出了问题,而不是收发器。然而,不管怎样,既然加密狗已经被密封,同样的童车加密狗就不能被纠正。 我们构建了一些可靠的适配器,但不希望将其转换为广告,所以让我们看看是否可以调试您的案例。发布更多详细信息以继续。 希望在您的RS485接收器引脚上添加此项,请确保有一个到+3v3的本地上拉电阻器。当RS485接收器被禁用时,要求在UART的Atmel接收上具有高状态。也就是说,当RS485接收器被禁用时,RX引脚为高z。已知10k值为好,该值不是关键值,但建议上拉。 更新 我想我理解你的项目的观点。如果我错了,请改正。您是否试图使用Teraterm+USB RS485加密狗通过RS485向Atmel发送文本,并希望Atmel将数据发送回您的Teraterm?如果是,那么如果您在Teraterm中键入此数据,则结果是合乎逻辑的。请确认此设置。 也就是说,你是在输入“Hello world”并期待收到这条短信吗? 这个想法的问题是,PC发送数据的速度比你键入的要快。相反,请回顾如何使用Teraterm以宏形式发送块中的整个字符串。只有这种方法对你的想法有用。当您输入时,Teraterm通过RS485接口等发送(也就是刷新tx缓冲区)H,这样您就不会在单个块接收中接收到整个字符串。 考虑一个带有terterm的宏在一次发送中发送“行星”等。关键点不是要发送的每个字符之间的延迟。 |
![]() |
2
0
485在传输数据时需要精确的线路控制。UDRE表示可以加载数据。TXC表示数据已发送。只有在传输最后一个位之后,线路才应该释放。我相信这就是它在rs232中工作而在rs485中失败的原因。 |
|
gotti123 · 在MCU上查找Pin 7 年前 |
|
Daniel Barvík · 使用I2C\U主库AVR 7 年前 |
![]() |
Bergi · 如何为数据保留固定的闪存部分? 7 年前 |
![]() |
danieljimeneznz · AVR半双工接收器中断错误 7 年前 |
![]() |
girikks · 结构值未在主源文件中更新 7 年前 |