CLK->CLKSEL1_BITS.UART_S=0;
GCR->IPRST_CTL2_BITS.UART_RST = 1;
GCR->IPRST_CTL2_BITS.UART_RST = 0;
CLK->APBCLK_BITS.UART_EN=1;
GCR->P1_MFP_BITS.MFP=0x00;
GCR->P1_MFP_BITS.ALT|=0x0C; //UART
UART0->LCR_BITS.NSB=0; //1 STOP
UART0->LCR_BITS.WLS=3; //8 DATA
UART0->BAUD_BITS.DIV_X_EN=0;
UART0->BAUD_BITS.DIV_X_ONE=0;
UART0->BAUD_BITS.BRD=1;
UART0->FUN_SEL_BITS.FUN_SEL=3; //使能485模式
UART0->FCR_BITS.RX_DIS=1; //1为禁止接收
UART0->ALT_CSR_BITS.RS485_NMM=1; //使能正常操作模式
UART0->ALT_CSR_BITS.RS485_ADD_EN=0; //0禁止地址检测这里是0还是1都试过,都是同样的结果,我只是想用9位接收模式,没有地址数据之分都要接收,不知该是0还是1
UART0->ISR_BITS.RDA_IF=1;
UART0->FCR_BITS.RFITL=0;
UART0->IER_BITS.RDA_IEN=1;
DrvGPIO_Open(E_PORT1, 4, E_IO_OUTPUT); //UART RX ENABLE
DrvGPIO_ClrBit(E_PORT1, 4);
NVIC->ISER[0]|=0x1000;
上面调试无法进入接收中断,有时候一直进中断还提示接收溢出
串口外接一个3v485驱动
这样配置有没有问题
|