lpc2214 串口通信问题

heerkesi 2017-07-17 07:01:11
问题:从串口中接收的数据混乱问题
程序代码如下:

/*************************************************************************************
串口初始化函数
**************************************************************************************/
void UART0_Init(void)
{
uint16 Fdiv;
U0LCR = 0x83;
Fdiv = (Fpclk / 16) / UART_BPS; //设置波特率为115200
U0DLM = Fdiv / 256;
U0DLL = Fdiv % 256;
U0LCR = 0x03;
}
/*************************************************************************************
发送一字节数据
**************************************************************************************/
void UART0_SendByte(uint8 data)
{
U0THR = data;
while(0 == (U0LSR & 0x40)); //等待发送完毕
}
/*************************************************************************************
接收一字节数据
**************************************************************************************/
uint8 UART0_RcvByte(void)
{
uint8 rcv_data;
while(0 == (U0LSR & 0x01)); //等待接收完毕
rcv_data = U0RBR;
return (rcv_data);
}
/*************************************************************************************
主程序
**************************************************************************************/
void main()
{
uint8 Rcvdatabuf[10];
uint8 tmpi;
........
PINSEL0 = PINSEL0 | 0x00000005; //设置I/O连接到UART0
UART0_Init(); //初始化串口
........
for(tmpi=0; tmpi<10; tmpi++)
{
Rcvdatabuf[i] = UART0_RcvByte(); /从串口接收数据放入Rcvdatabuf中
}
........

}

过程描述:我用串口工具发送如下数据: 68 50 10 40 30 00 00 10 68 ;但调试的时候收到的数据却是如此之乱:
...全文
254 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
heerkesi 2017-07-18
  • 打赏
  • 举报
回复
引用
回复于: 2017-07-17 21:55:35 波特率的问题吧 单步仿真看看实际的波特率是多少
#define UART_BPS 115200 //设置波特率为115200; 实际仿真的时候,Fpclk的值为0x00A8C000;Fdiv的值为0x06。U0DLM=00;U0DLL=06,这样设置有问题么?
woshi_ziyu 2017-07-17
  • 打赏
  • 举报
回复
波特率的问题吧 单步仿真看看实际的波特率是多少

27,377

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧