在线时间18 小时
UID3918806
注册时间2023-5-5
NXP金币0 
 
 
 
该用户从未签到 
注册会员 
  
 
	- 积分
 - 140
 
 
- 最后登录
 - 2023-11-24
  
 
 | 
 
想请问一下,这个配置有什么问题吗?实现不了串口接收发送 
 
void rs485_init(void) 
{ 
         
        Chip_GPIO_Init(LPC_GPIO_PORT); 
        Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 0, 0);//设置单个GPIO引脚的GPIO方向为输出 
        Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, 0, false);//通过GPIO字节寄存器设置GPIO引脚状态 
         
        Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 0, 4);//设置单个GPIO引脚的GPIO方向为输出 
        Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, 4, false);//通过GPIO字节寄存器设置GPIO引脚状态 
         
//        Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 0, 28);//设置单个GPIO引脚的GPIO方向为输出 
//        Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, 28, false);//通过GPIO字节寄存器设置GPIO引脚状态 
         
        Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);//开启时钟 
        Chip_SWM_MovablePinAssign(SWM_U0_TXD_O, 4);//为物理引脚指定一个可移动引脚函数 
        Chip_SWM_MovablePinAssign(SWM_U0_RXD_I, 0);//为物理引脚指定一个可移动引脚函数 
        //Chip_SWM_MovablePinAssign(SWM_U0_RTS_O, 28);//为物理引脚指定一个可移动引脚函数 
        Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);//关闭时钟 
 
        Chip_UART_Init(LPC_USART0);//串口初始化 
        Chip_UART_ConfigData(LPC_USART0, 
                        UART_CFG_DATALEN_8 
                        | UART_CFG_PARITY_NONE 
                        | UART_CFG_STOPLEN_1);//配置数据宽度、奇偶校验和停止位 
 
        Chip_Clock_SetUSARTNBaseClockRate((115200 * 16), true);//设置USART 0/1/2 UART基本速率 
        Chip_UART_SetBaud(LPC_USART0, 115200);//设置uart波特率 
        Chip_UART_TXEnable(LPC_USART0);//启用UART TxD引脚传输 
        Chip_UART_Enable(LPC_USART0);//启用uart 
 
 
//发送数据 
void UART0_SendByte (uint32_t ucData) 
{ 
        while (!Chip_UART_GetStatus(LPC_USART0)) 
                ; //获取状态寄存器 
          Chip_UART_SendByte(LPC_USART0,ucData);//传输单个字节 
    //LPC_USART0->TXDATA = ucData; 
} 
 
//接收数据 
uint32_t UART0Received (void) 
{ 
        uint32_t data; 
        while (!Chip_UART_GetStatus(LPC_USART0));//获取状态寄存器 
        data = Chip_UART_ReadByte(LPC_USART0);//读取单个字节 
        return data;         
 
} 
 
int main(void) 
{ 
        rs485_init(); 
  MRTInit(); 
 
        uint32_t buff = 0; 
         
  UART0_SendByte ('h'); 
        while(1) 
        { 
 
                buff = UART0Received(); 
                UART0_SendByte(buff); 
    //led_init(); 
        } 
} 
 
 
 
 
 
        
        
        
         |   
 
 
 
 |