麦克斯韦Maxwell 发表于 2024-3-21 16:31:43

关于IO模拟串口

用IO模拟串口,假如选择传统的1个起始位,一个终止位,8个数据位,那发一帧串口数据包,8位最大只能发送的数值是255,那是不是意味着,我们不能发送超过255的数值呢,比如1000这些,是不是用串口实现不了?如果想实现,是不是要自己做私有协议?

mrjiu 发表于 2024-3-21 18:18:07

模拟串口,还是洗洗睡吧。上次我对接一个模拟串口的。。。量产500套主板,有几十套始终不行。。。最后都改成硬件的,一下子就全部都行了。把另外一个串口拿过来重映射了。所以,建议不要模拟串口,可以模拟带时钟的协议,不要模拟这种协商的。

eric2013 发表于 2024-3-22 09:18:27

这种的只能分两次发。

前几天群友分享了个

任意GPIO使用TIM+DMA+EXTI模拟UART
https://www.armbbs.cn/forum.php?mod=viewthread&tid=123215&fromuid=58
(出处: 硬汉嵌入式论坛)


sanit 发表于 2024-3-22 10:17:39

mrjiu 发表于 2024-3-21 18:18
模拟串口,还是洗洗睡吧。上次我对接一个模拟串口的。。。量产500套主板,有几十套始终不行。。。最后都改 ...

那是你代码问题把   只要时钟别偏移就不会有问题

麦克斯韦Maxwell 发表于 2024-3-22 18:36:38

eric2013 发表于 2024-3-22 09:18
这种的只能分两次发。

前几天群友分享了个


硬汉哥你好,看了分享的程序,有一点疑惑,定时器触发DMA,定时器可以控制DMA的开始和终止时间,但是并不能控制DMA的数据传输速度啊,一次发送一帧数据,一帧有10BIT,但是我们怎么保证每一个BIT的电平保持时间符合UART要求呢?比如说,我们设置定时器10S,UPDATE一次,一帧传10BIT,那一个BIT的电平可以保持1S的时间,但是如果DMA仅需要5S就完成的一帧的传输呢,那岂不是一个BIT仅有0.5S的保持时间,接收方不就解码错误,而剩下的5S则是直接进入空闲状态?

麦克斯韦Maxwell 发表于 2024-3-22 18:43:49

定时器开启DMA后,通过DMA发送一帧数据,那每一个BIT数据的保持时间是如何确认的呢?
页: [1]
查看完整版本: 关于IO模拟串口