1. 协议详解

来源:DMX512是由USITT(美国剧院技术协会)提出的,是一种标准数字接口控制调光器的方式,协议多用于舞台、景观灯的控制,全称为USITT DMX512-A。

硬件依托:基于rs485硬件接口,波特率为250kbps =250000bps,是主从式的异步串行传输协议,即一个主机向多个从机发送11位的数据帧,从机只接收和判断收到的数据帧是否丢弃还是使用。

数据格式:波特率25000bps对应每bit的持续时间是4us,发送一个数据帧的时间:4*11=44us。一个完整的DMX512数据包组成:BREAK信号、MAB信号和SC(start code)信号,以及512个数据帧;一个数据帧组成:1bit低电平起始位、8bit数据位(0-255)、2bit停止位。

信号位说明:BREAK是一个DMX512数据包的启示控制信号,代表一个数据包发送完的复位标志,BREAK的信号是低电平有效,持续时间88us-1S,典型值100us。MAB信号代表一个数据包开始发送,因为BREAK和START CODE的起始位都是低电平,故加入MAB来区分,所以MAB是高电平,持续时间8us-1s,通常取12us。START CODE是起始码,和普通的数据帧一样,数据位为0x0

  1. 代码设计

DMX512协议发送设计:DMX512的数据帧格式和串口的格式差不多,可以基于串口来发送数据帧,要求是把串口的数据位设为9位(多了一位停止位)。512个数据帧解决了后,主要就是要形成BREAK和MAB,这里用的定时器做的us延时来实现。

步骤1:初始化一个485串口,波特率设置为250000bps、9bit数据位、一位停止位、tx模式。

步骤2:初始化定时器,参考网上教程写us延时函数。

步骤3:实现UART_MODE(int mode)函数,该函数是将uart的tx脚进行IO口初始化的,发送BREAK和MAB的时候要把tx脚初始化为上拉输出,发送数据帧时要把tx设置为复用推挽输出。

示例代码:

Int pDMX_buf;

UART_MODE(io模式);

GPIOC->BRR = GPIO_PIN_TX; //把tx脚输出低电平的BREAK位

Delay_us(100);

GPIOC->BSRR = GPIO_PIN_TX; //把tx脚输出高电平的MAB位

Delay_us(12);

UART_MODE(uart模式);

for(pDMX_buf = 0; pDMX_buf <= 512; pDMX_buf++) //0:startcode  1-512:调光数据

{

if(pDMX_buf == 0)

{

UART4->DR = 0x00; //第一帧数据0x00

while((UART4->SR & 0X40) == 0); //确保数据发送完成

}

else

{

UART4->DR = 0x100 | dmx_buf[pDMX_buf];//数据帧的第九位要为高

while((UART4->SR & 0X40) == 0); //确保数据发送完成

}

}

DMX512标准发送及代码整理相关推荐

  1. php图文消息带代码详细注释,微信发送图文消息代码整理

    微信发送图文消息代码整理 这个就不多说什么了, 下单成功后微信提示图文消息.核心代码如下 if(!empty($openid)){ $wxinfo=curlgetcontents("http ...

  2. dmx512协议c语言编程,DMX512协议+c程序代码.pdf

    DMX512 协议 1.协议简介 DMX 是Digital MultipleX 的缩写 ,意为多路数字传输.DMX512 控制协议 是美国舞台灯光协会(USITT)于1990 年发布的灯光控制器与灯具 ...

  3. 一个基于 osip 库的 UAC 和 UAS 的代码整理(转)

    从网上搞了一个基于osip 库的 SIP 协议的简单的 UAC 代理客户端和 UAS 代理服务器端,并进行了编译连接,代码整理后如下: ----------- UAC 代理客户端的代码整理 ----- ...

  4. dll放在unity哪个文件夹下_程序丨如何将你的Unity代码整理到一个DLL中?

    原标题:程序丨如何将你的Unity代码整理到一个DLL中? 翻译:林政(玄猫大人) 审校:沈晓霖 代码复用的重要性 这里有一则故事也是你听过类似的: 你下载好Unity,看完Youtube上的一些教程 ...

  5. Unity Shader 常规光照模型代码整理

    Unity Shader 常规光照模型代码整理 本次整理在Unity中几种常见的光照模型,包含 1.BlinnPhong(常规光照模型) 2.ForwardRender(多灯光带有衰弱前向渲染) 3. ...

  6. 前端代码整理-迷你登录页面

    登录页面很多,但是我需要的是拿来即可用.不用重复造轮子的登录代码 我已经代码整理到一个页面 <!doctype html> <html> <head><met ...

  7. 黑马旅游网项目详细思路和完整代码整理 -附源码

    黑马旅游网项目详细思路和完整代码整理 前言 由于新冠病毒的原因,无法上学.百无聊赖下自己开始看视频学习,跟着视频做完了这个项目来检验学习成果,顺便写篇博客来记录一下. 话不多说,开始正题. 文档及其源 ...

  8. html生成无序列表,CSS无序列表创建的标准菜单效果代码

    本文实例讲述了CSS无序列表创建的标准菜单效果代码.分享给大家供大家参考.具体如下: 这是一款用LI无序列表创建的标准CSS菜单,这是国外一个网站的CSS制作教程,这里重新整理了一下,去除了广告代码, ...

  9. html移动端隐藏代码,html Css PC 移动端 公用部分样式代码整理

    css常用公用部分样式代码整理: body, html, div, blockquote, img, label, p, h1, h2, h3, h4, h5, h6, pre, ul, ol, li ...

  10. 常用代码整理(重要)

    常用代码整理: 1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex ...

最新文章

  1. 浙江大学计算机经济学院,浙江大学计算机学院来区考察调研
  2. 【运营】各大电商七夕活动对比
  3. 关于select—页面中的ListBox的Javascript
  4. js 弹窗并定时关闭
  5. SSM框架中mapper和mapping.xml文件在同一个包下需要的配置
  6. 漫步线性代数十七——正交基和格拉姆-施密特正交化(上)
  7. 污水处理中php是什么药剂,污水处理中需要用到哪些药剂?
  8. 8-1 数据库分库分表的几种方式
  9. Weblogic开启managed server报错java.lang.OutOfMemoryEr
  10. hpm1216nfh驱动程序_hp1216nfh一体机驱动下载_hp1216nfh一体机驱动 v4.0官方版_魅蓝下载...
  11. python爬取app store的评论_用python爬取苹果官网店铺
  12. 机房收费系统——配置DSN文件
  13. Unity3d UI自适应之Canvas Scaler详细说明和测试项目源码
  14. 【Java】线程插队
  15. 狼性教育——让孩子成为主宰命运地强者
  16. 清华大学计算机杨弋,[转载]专注与兴趣是成功的阶梯(访杨弋)
  17. Android Material 常用组件详解(六)—— Progress indicators、Slider 使用详解
  18. 百融云创被传赴港IPO急辟谣 旗下信贷业务存众多质疑
  19. 设计模式六大原则的理解与归纳
  20. unity火焰粒子效果

热门文章

  1. 汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用
  2. Opening My World——ESRI用户大会有感
  3. 软件开发中的非功能需求类型
  4. 西威变频器avo下载调试资料_全程图解变频器应用与检测技能
  5. python对工程造价有用吗_工程造价真的不行了吗?
  6. 霍兰德SI型如何选专业?霍兰德职业兴趣测试
  7. 如何实现一个拍照搜题功能
  8. 人工智能几行代码实现换脸,python+dlib实现图文教程
  9. HIT CSAPP 大作业
  10. 大学机器人类公选课(ROS机器人高效编程)申请表、大纲、部分教案、进度表等材料分享