一個小專案要控制基于DMX512協議的燈光控制的模塊,我使用的是cc2530模塊,但是現在問題是我不知道怎么才能產生一個88us的低電平,求大神們解答!
uj5u.com熱心網友回復:
如果只寫不讀的話,用引腳TXD延時Break和MAB比較實用。
uj5u.com熱心網友回復:
(115200,e,8,1) 發送00H, 差不多就是這個時間1起始位+8位資料+1校驗 = 10位 1E6/115200*10 = 86.81us
uj5u.com熱心網友回復:
如果用NXP的LPC11U,可以控制LCR暫存器中的第6位的BC(Break control)來控制
void Uart_XmitDmxSlotValues(uint8_t *pBuf, uint16_t nrOfSlots,
uint16_t break_time, uint16_t mab_time,
bool blocking_write, bool xmit_disc_request)
{
if (nrOfSlots > 1)
{
dmx_xmit_data_done = false;
dmx_xmit_data_len = nrOfSlots - 1;
rdm_recv_disc_response = xmit_disc_request;
if (break_time > 0)
{
LPC_UART->LCR |= (1 << 6); /* generate line break for 92 usec */
bsp_delay_usec(break_time);
LPC_UART->LCR &= ~(1 << 6); /* remove line break for 12 usec */
}
if (mab_time > 0) bsp_delay_usec(mab_time);
LPC_UART->THR = *pBuf++; /* xmit DMX start code */
dmx_xmit_data = pBuf;
LPC_UART->IER |= IER_THRE; /* Enable THRE interrupt */
if (blocking_write)
{
while(!dmx_xmit_data_done);
Uart_XmitEmpty();
}
}
}
uj5u.com熱心網友回復:
還是拉gpio 延時的方法吧uj5u.com熱心網友回復:
樓上正解,延時方式。另外 CC2530 你是裸奔還是跑zigbee?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/119760.html
標籤:單片機/工控
