linux系统串口dmx512,基于stm32实现DMX512协议发送与接收详解

本文详细介绍了基于STM32的DMX512协议实现,包括发送端和接收端的配置。发送端设置为9位数据,1位停止位,无校验位,通过检测第十位进行数据传输;接收端利用中断接收并解码,特别关注RB8的处理。
摘要由CSDN通过智能技术生成

描述

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,其中STM32F系列有:STM32F103“增强型”系列STM32F101“基本型”系列STM32F105、STM32F107“互联型”系列,增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是32位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,相当于0.5mA/MHz。

基于stm32实现DMX512协议发送与接收

DMX512数据协议是美国舞台灯光协会(USITT)于1990年发布的一种灯光控制器与灯具设备进行数据传输的标准。它包括电气特性,数据协议,数据格式等方面的内容。

512协议规定使用的波特率是250Kbps,但是stm32可以支持shangMbps的波特率,所以说这不是什么大问题。

该协议发送的数据帧一共11位,1位开始位,8位数据,2个停止位,无校验位。

ad46626d16bb14bf2f213d4cf59bb935.png

根据波特率可以知道,位时间是4us,11位数据供需要44us的时间。当然对于标准的512协议是需要break和mark after break 帧的,break是一个92us的低电平,而mark after break是一个12us的高电平,如下图所示

de46f1b27e71bcc03394d4afd36888a4.png

f29c73c1914a488e1aa130708370cb27.png

根据上面的图片(缺失了起始码,下图补上)&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值