串口单线半双工,双方的RX和TX直接。接收采用中断,可行吗

2019-12-22 13:44发布

两个stm8串口通信,A机TX脚与RX脚连在一起,B机TX脚与RX脚连在一起,然后用一根线直连。两边的接收都采用中断,能否实现半双工通信。这种方式可行否,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
57条回答
usm4glx
1楼-- · 2019-12-27 14:35
iamfiavarst 发表于 2015-11-23 22:30
可行的,采用状态顺序机制,没有总线冲突

接收能使用中断吗
zhuyihua001
2楼-- · 2019-12-27 17:32
 精彩回答 2  元偷偷看……
usm4glx
3楼-- · 2019-12-27 22:20
lw32 发表于 2015-11-21 17:20
STM8S的UART1本来就有 单线半双工通信 模式

我看官方的例子是查询方式
usm4glx
4楼-- · 2019-12-28 04:09
zhuyihua001 发表于 2015-12-12 15:49
可以使用中断.

接收使用中断.

那么我理解的意思是这样的,首先硬件上两个stm8 的UART_TX直连, 然后配置为半双工
  UART1_DeInit();
  UART1_Init((uint32_t)230400, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO,
              UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
              USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
                UART1_HalfDuplexCmd(ENABLE);
这样初始化就OK了,在发送的时候禁止接收中断,发送完成后再打开接收中断即可。不知道我的理解对不对。
zhuyihua001
5楼-- · 2019-12-28 05:35
usm4glx 发表于 2015-12-12 16:00
那么我理解的意思是这样的,首先硬件上两个stm8 的UART_TX直连, 然后配置为半双工
  UART1_DeInit();
   ...




理解正确
usm4glx
6楼-- · 2019-12-28 07:13
本帖最后由 usm4glx 于 2015-12-14 15:34 编辑
zhuyihua001 发表于 2015-12-12 16:20
理解正确


你好,现在单线两个STM8L通信,主机发给从机正常,从机发给主机也OK,但是主从连在一起就不行了.经过试验分析,发现问题在软件的主从控制问题.如何解决这个问题,不知道前辈能不能提供很好的建议。我初步的想法是主机发送后,即变为从机,此时在从机接受指令中将从机改为主机。但是这样并不是怎么好,不知道前辈能不能提点意见呢

一周热门 更多>