Based on a small project to control the lights of the DMX512 protocol control module, I use a cc2530 module, but now the problem is I don't know how to produce a 88 us low level, for the great god answer!
CodePudding user response:
The
refer to the original poster qq_41230794 response: a small project to control based on the lights of the DMX512 protocol control module, I use a cc2530 module, but now the problem is that I don't know how to produce a low level, 88 us asked the great spirit to solve! If only read not write, TXD delay Break with pin and MAB is more practical, CodePudding user response:
(115200, e, 8, 1) send 00 h, is about this time 1 start bit + 8 bits of data calibration=10 + 1 1 e6/115200 * 10=86.81 us CodePudding user response:
If use NXP LPC11U, can control the LCR registers in the 6th BC (Break control) to control the Void Uart_XmitDmxSlotValues (uint8_t * pbufs, uint16_t nrOfSlots, Uint16_t break_time, uint16_t mab_time, Bool blocking_write, bool xmit_disc_request) { If (nrOfSlots & gt; 1) { Dmx_xmit_data_done=false; Dmx_xmit_data_len=nrOfSlots - 1; Rdm_recv_disc_response=xmit_disc_request; If (break_time & gt; 0) { LPC_UART - & gt; The LCR |=(1 & lt; <6);/* generate line break for 92 usec */ Bsp_delay_usec (break_time); LPC_UART - & gt; The LCR & amp;=~ (1 & lt; <6);/* remove line break for 12 usec */ } If (mab_time & gt; 0) bsp_delay_usec (mab_time); LPC_UART - & gt; THR=* pBuf++;/* xmit DMX start code */ Dmx_xmit_data=https://bbs.csdn.net/topics/pBuf; LPC_UART - & gt; IER |=IER_THRE;/* the Enable THRE interrupt */ If (blocking_write) { while(! Dmx_xmit_data_done); Uart_XmitEmpty (); } } } CodePudding user response:
Let's pull gpio delay method CodePudding user response:
Upstairs positive solution, time delay, zigbee is also CC2530 you streaking or run?