查看: 433|回复: 0

[求助] lpc824

[复制链接]

该用户从未签到

5

主题

7

帖子

0

注册会员

Rank: 2

积分
140
最后登录
2023-11-24
发表于 2023-5-22 09:20:28 | 显示全部楼层 |阅读模式
想请问一下,这个配置有什么问题吗?实现不了串口接收发送

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();
        }
}





我知道答案 目前已有0人回答
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-5-4 07:52 , Processed in 0.114552 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表