|
stm32單片機(jī)源程序如下:
- #include "usart.h"
- #include "delay.h"
- #include "stm32f4xx.h"
- #include "dmx512.h"
- #define PD8 PDout(8) //串口3發(fā)送腳
- #define PD9 PDin(9) //串口3接收腳
- //------------------------------DMX512的通信驅(qū)動(dòng)程序段-----------------------------------------------------
- u8 pDMX_buf ;
- //***********************************************************************
- u8 TXDData[512]; //發(fā)送緩沖區(qū)512個(gè)數(shù)據(jù)
- u8 RXDData[512]; //接收緩沖區(qū)512個(gè)數(shù)據(jù)
- 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); //延時(shí)92us
- GPIO_SetBits(GPIOD,GPIO_Pin_8); //輸出高電平
- delay_us(16); //延時(shí)15us
-
- }
- void DMX_SendPacket(void) //發(fā)送DMX512數(shù)據(jù)
- {
- pDMX_buf = 0;
- USART_SendData1(USART3,TXDData[0]);
- while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET ); //這里做緩沖區(qū)是否發(fā)送完判斷
- 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 ); //這里做緩沖區(qū)是否發(fā)送完判斷
- }
-
-
- }
復(fù)制代碼
所有資料51hei提供下載:
dmx512控制程序.rar
(462.23 KB, 下載次數(shù): 139)
2018-8-30 16:25 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|