stm32单片机源程序如下:
- #include "usart.h"
- #include "delay.h"
- #include "stm32f4xx.h"
- #include "dmx512.h"
- #define PD8 PDout(8) //串口3发送脚
- #define PD9 PDin(9) //串口3接收脚
- //------------------------------DMX512的通信驱动程序段-----------------------------------------------------
- u8 pDMX_buf ;
- //***********************************************************************
- u8 TXDData[512]; //发送缓冲区512个数据
- u8 RXDData[512]; //接收缓冲区512个数据
- void DMX_init(void) //DMX512初始化
- {
- USART_TX_EN=1;
- // int i;
- TXDData[0] = 0; //起始码00
- // for(i = 1; i<=512; i++)
- // {
- // TXDData[i] = 0;
- // }
- TXDData[1] = 0XFF;
- TXDData[2] = 128;
- TXDData[3] = 00;
-
- TXDData[4] = 0;
- TXDData[5] = 255;
- TXDData[6] = 0;
- GPIO_ResetBits(GPIOD,GPIO_Pin_8); //输出低电平
- delay_us(92); //延时92us
- GPIO_SetBits(GPIOD,GPIO_Pin_8); //输出高电平
- delay_us(16); //延时15us
-
- }
- void DMX_SendPacket(void) //发送DMX512数据
- {
- pDMX_buf = 0;
- USART_SendData1(USART3,TXDData[0]);
- while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET ); //这里做缓冲区是否发送完判断
- pDMX_buf ++;
- for( pDMX_buf = 1; pDMX_buf<=6; pDMX_buf++)
- {
-
- USART_SendData(USART3,TXDData[pDMX_buf]);
-
- while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET ); //这里做缓冲区是否发送完判断
- }
-
-
- }
复制代码
所有资料51hei提供下载:
dmx512控制程序.rar
(462.23 KB, 下载次数: 138)
|