在STM32上通过UART+DMA实现One-Wire总线 在STM32微控制器上,One-Wire总线是一种常用的总线协议,它使用一根并联总线完成对于多个设备的访问。通过上拉的OD门实现多设备的读写操作,通过ID区别设备,通过CRC5完成数据校验。然而,传统的One-Wire总线实现方式存在一些问题,如浪费了大量的MCU时钟周期做等待、在不同编译器优化级别下,设定的延时计数值常量有可能产生不精确的延时等。 本文将介绍如何使用UART+DMA方式实现One-Wire总线,以避免上述问题。本文将从UART实现位操作的原理、DMA方式实现One-wire总线读写等方面对知识点进行详细的解释。 1.UART实现位操作的原理 UART实现位操作的原理是使用UART发送和接收数据寄存器来实现One-Wire总线的读写操作。具体来说,可以使用9600-8-N-1的UART配置,发送0XF0并返回0X10~0X90实现总线复位时序。然后,可以使用115200-8-N-1的UART配置,发送0XFF并返回0XFF(表示读取bit为1)或其他(表示读取为0)实现总线读时序。可以使用115200-8-N-1的UART配置,发送0XFF并返回0XFF(表示写入bit为1)或发送0X00并返回0X00(表示写入为0)实现总线位写时序。 2.DMA方式实现One-wire总线读写 DMA方式实现One-wire总线读写的原理是使用DMA传输存储器地址指向一个宽度为byte容量为8的缓冲。然后,对于byte写操作,将要写入的byte通过上述的位写操作将每一bit转换成发送数据byte顺序存入缓冲,启动两个DMA,通过等待RXDMA的完成标志(TC)完成一次写操作。对于byte读操作,将0xFF连续8次存入缓冲,启动两个DMA,通过等待RX DMA完成标志(TC)完成一次读操作,读取的数据通过上述的位读操作,将bit转换成输出的byte数据。 3.代码实现 在STM32F407VG芯片上,我们使用USART2作为操作的UART,其中TX引脚为PA2,RX引脚为PA3。使用的DMA为DMA1,DMA通道为Channel4,使用的RX Stream为Stream5,使用的TX Stream为Stream6。我们定义了一些全局变量和预定义,如OW_GIVE_TICK_RTOS、OW_OK、OW_ERROR、OW_NO_DEVICE、OW_INVALID_BUF等。然后,我们实现了Init函数,用于初始化UART Peripheral为不同的波特率用于复位时序或者数据位读写时序。 本文介绍了如何使用UART+DMA方式实现One-Wire总线,以避免传统的One-Wire总线实现方式存在的一些问题。这种方式可以提高One-Wire总线的读写速度和稳定性,是一种高效的One-Wire总线实现方式。





















剩余7页未读,继续阅读

- whph2023-07-28这篇文章详细介绍了如何在STM32上使用UART DMA实现One-Wire总线,对于初学者来说非常有帮助。
- 爱设计的唐老鸭2023-07-28文章内容清晰易懂,作者对于One-Wire总线的原理和实现方式做了深入浅出的解释。
- 小崔个人精进录2023-07-28作者对于可能遇到的问题和解决方法进行了充分的思考和讨论,为读者避免了很多不必要的困扰。
- 半清斋2023-07-28文章提供了具体的代码实现,并附有详细的解析,对于需要使用该功能的读者非常实用。
- 狼You2023-07-28总的来说,这篇文章是一份很好的参考资料,能够帮助读者更好地理解和实践在STM32上通过UART DMA实现One-Wire总线的方法。

- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 数据库SQL语法函数介绍PPT学习课件.ppt
- 单片机电阻测量(1).docx
- TCP网络门禁专业系统设计专项方案.doc
- 会计实务:会计软件的日常运行与维护(1).doc
- 软件代理合同(样式一)(1).doc
- 计算机专业英语Elementary-Data-Structures省公共课一等奖全国赛课获奖课件.pptx
- AUTOCAD2010基础知识(1).ppt
- matlab程序设计基础.ppt
- SAGEMIONOSNMS网络基础管理系统.docx
- 利用Protel软件画元件封装图(1).ppt
- 项目管理机构稳定风险手册模板.doc
- 复杂模型计算机的设计基础报告.docx
- 通信工程概预算培训试题及答案模板(1).doc
- Oracle面试题大全(1).docx
- 基于c语言单片机电子时钟程设计.docx
- STM32-马达控制套件介绍(1).pptx


