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, 下載次數: 139)
2018-8-30 16:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|