请问:
我想从外面接收到信号然后再通过io口发送出去,数据源是差分信号 ,经过MAX485后接到cortex m0, 芯片是nxp的1114f。
是不是只要我把终止位数还有数据位数设置 好,还有波特率设置好了就可以了呢?下面的uart初始函数可以吗?有没有哪些设置漏掉了?有一个RTS引脚的设置不是很清楚,只接收数据,暂时不考虑发送数据,是不是就可以不管RTS引脚了?接收数据还有一个地址匹配寄存器是怎么设置呢?数据经过max485的信号波形如下图,网上485的例子找不到,故来求教,谢谢大家!
void uartInit(void)
{
uint16_t usFdiv;
uint32_t Clear=Clear;
LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 16);
LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 6);
LPC_IOCON->  IO1_5 |= 0x01;
LPC_IOCON->  IO1_6 &= 0x07;
LPC_IOCON->  IO1_6 |= 0x01; //P1.6 设置成RXD
LPC_IOCON->  IO1_7 &= 0x07;
LPC_IOCON->  IO1_7 |= 0x01; //P1.7 设置成TXD
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12);
LPC_SYSCON->UARTCLKDIV = 0x01;
LPC_UART->LCR = 0x87; //8位传输,2个停止位,无奇偶校验,允许访问除数锁存器
usFdiv = (SystemFrequency/LPC_SYSCON->UARTCLKDIV/16)/UART_BPS; //除数锁存器的值
LPC_UART->DLM = usFdiv / 256; //写除锁存器高位值
LPC_UART->DLL = usFdiv % 256; //写除锁存器低位值
LPC_UART->LCR = 0x07; //DLAB置0 ,禁止除数锁存器的访问
LPC_UART->FCR = 0x07; //允许FIFO ,清空RxFIFO和TxFIFO
LPC_UART->RS485CTRL = 0x30; //使能自动方向控制(bit4),要发送时,方向控制管脚为“1”,最后一个数据发送完成生,置“0”
LPC_UART ->IER = 0x01; //只允许接收中断,关闭其他中断
Clear=LPC_UART->LSR;
}
|