STM32串口实现1-wire(二)
来源:互联网 发布:大连美工培训 编辑:程序博客网 时间:2024/05/10 14:55
STM32串口实现1-wire(二)
上一篇利用串口的半双工实现对1-wire协议的操作,利用单线半双工有个问题就是在读取1-wire总线设备(18B20)时,如果设备输出低电平时可能会造成电平不能完全拉到低电平,甚至烧掉TX管脚。
想法:既然内部将TX和RX相连接不好做,就再外部让TX和RX相连接。不利用stm32单线模式。通过一个二极管配合选通。
DATA连接到1-wire总线设备(DS18B20的DQ线)。
分析
- TX输出0时,二极管导通,DATA应该在0.2V左右,此时1-wire总线设备(DS18B20)和STM32的RX能够正常收到数据0。
- TX输出1时,二极管闭合,DATA被上拉成3.3V。1-wire总线设备(DS18B20)和STM32的RX能够正常收到数据1。
- 对于读数据来说,需串口发送0xFF,STM32的TX位高电平,此时二极管都是截止的。STM32的RX线和1-wire总线设备(DS18B20)总线直接相连,能够正常收到1-wire总线设备(DS18B20)设备的数据。
代码修改
代码还是STM32串口实现1-wire(一)的代码,做如下修改:
- IO管脚需要加入对RX的配置。
- 不使能STM32单总线半双工模式(去掉USART_HalfDuplexCmd(USART2, ENABLE);函数调用)。
0 0
- STM32串口实现1-wire(二)
- STM32串口实现1-wire(一)
- stm32串口学习(二)
- STM32学习笔记(二)------串口实验
- stm32串口-main实现发送
- stm32串口1收发
- STM32串口使用心得(二)——串口溢出中断(ORE)
- STM32之USART串口通信<二>
- STM32串口1发送,串口2接收
- STM32 串口DMA(一)
- stm32串口学习(一)
- STM32--USART(串口通信)
- 1-wire单总线浅谈之(二)--温度传感器DS18B20
- STM32 uCOS下实现串口文件
- IAR +STM32实现printf()输出到串口
- STM32串口实现485双机通信原理
- 1-Wire搜索算法详解(1)
- 1-Wire搜索算法详解(2)
- SQLite数据库总结一
- MySQL 5.6初始配置调优
- android 使用本机相机照相或用本地相册更新imageview里面的图片
- Swift控制语句之switch-case
- HDU4089 Activation 概率DP
- STM32串口实现1-wire(二)
- div+ul制作表格
- stm32CubeMx中实现窗口看门狗功能
- 网狐 "由于网络问题,您已经与服务器断开连接,请重新连接"
- CISCO学习笔记(十一)路由协议重分布
- android基本属性
- 如何确定IPA包是否支持64位
- 欢迎使用CSDN-markdown编辑器
- 【Leetcode】之Longest Substring Without Repeating Characters