也就是发送的时候,禁止接收
接收的时候,禁止发送
单线半双工通信
是可以的,如果你自己规定相应的协议进行传输的话是没有问题的。你可以看下DS18B20这个温度传感器的资料,采用的是单总线数据传输的方式
你可以参考一下Maxim 的1wire通信原理
1-wire 单总线是Maxim 全资子公司Dallas 的一项专有技术。与目前多数标准串行数据通信方式,如SPI/I2C/MICROWIRE 不同,它采用单根信号线,既传输时钟,又传输数据而且数据传输是双向的。它具有节省I/O 口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。
1-wire 总线由一个总线主节点、一个或多个从节点组成系统,通过一根信号线对从芯片进行数据的读取。每一个符合 1-Wire协议的从芯片都有一个唯一的地址,包括48位的序列号、8位的家族代码和8位的CRC代码。主芯片对各个从芯片的寻址依据这64位的不同来进行。1-Wire总线利用一根线实现双向通信。因此其协议对时序的要求较严格,如应答等时序都有明确的时间要求。基本的时序包括复位及应答时序、写一位时序、读一位时序。 在复位及应答时序中,主器件发出复位信号后,要求从器件在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规定的时间内读回或写出数据。1-wire 单总线适用于单个主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机位于总线上时系统可按照单节点系统操作;而当多个从机位于总线上,时则系统按照多节点系统操作。
软件这样切换不行吗?
ROM_UARTIntEnable(UART2_BASE, UART_INT_RX | UART_INT_RT);
ROM_UARTIntDisable(UART2_BASE, UART_INT_TX);
ROM_UARTIntDisable(UART2_BASE, UART_INT_RX | UART_INT_RT);
ROM_UARTIntEnable(UART2_BASE, UART_INT_TX);
我现在用TM4C123与STM32L052单线半双工通讯
STM32L052可以设单线,正常
当TM4C123与他相连,单独用TX发送有响应,示波器测
如果在把RX连上去就变无响应
半双工是由软件控制的,你不运行相关代码,自然不会有反应。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
昨天,测试发现TM4C123发送接收中断响应正常,但只接收到一个字节 FF
不知道问题出在哪里?
你需要多看看相关的例程,尤其是先把官方的例程看明白,基本功扎实后,这些问题迎刃而解。
这个跟打游戏一个道理,经验值太低了,一个小怪都打不死。何况你将来是要打 BOSS 的,但在这之前,你必须能杀成千上万个小怪才可以。
想办法,多花时间去增加各种属性值吧。
你是驱动什么传感器吗?
这种单线 半双工更 UART 有什么关系呢?
普通的 GPIO 口就可以,比如湿度传感器 DHT11 就是就是一个 IO 口来通信的,你可以搜一下,网上有程序。
本帖最后由 Study_Stellaris 于 2016-2-17 12:43 编辑
TX,RX都是串口吧。单总线可不是串口啊。串口收发是两个引脚。你用串口设置单线,半双工,不行的。单总线收发,你就用普通io就行了。找个单总线的传感器,前面已经有人提到。看看手册如何描述数据的收发。控制这个io,什么时候高,什么时候低,电平维持多长时间,等等。
DS18B20就是采用单总线双工通信,总线上可以挂接多个传感器,名字叫1wire,以前做过这个东西。
说实在的这种没有时钟的“自同步”通信很麻烦,而且速度不可能块。
并且单总线只能用于“一问一答”的主从令牌系统,做成突发通信的话软件上做冲突检测会很麻烦