串口接收错误

bluebai1231 2013-10-18 02:01:37
小弟初来扎到,正在调试串口驱动,调试了好几天了但是读串口还是有问题,问题描述如下:
当有一个字符串发送过来的时候,就只能接收到字符串的最后一个字符。

设置如下:
波特率是9600,
不需要FIFO,
数据格式LCR是0x3,即8个数据位,1个停止位,不需要ODD/EVEN
MCR是0x8,即 能正常中断,芯片正常工作。
IER是0xf,即所有中断全部打开。

代码如下:
char *uart_read_com()
{
int off = (int)0;
uint8_t reg_data = 0;
uint8_t temp = 0;
inport_byte(LSR,reg_data);
//memset(buf,0,sizeof(buf));
while((off<BUFFER_SIZE-1) && (reg_data&(1<<0)))
{
inport_byte(RBR,temp);
buff[off++] = temp;
printk("gets,buff[%d] is %c\n",off,temp);
inport_byte(IIR,reg_data);
printk("gets,IIR is0x%x\n",reg_data);
buff[off] = '\0';
}
return buff;
}

希望各位大牛指点小弟啊
...全文
131 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluebai1231 2013-10-18
  • 打赏
  • 举报
回复

这里是图片

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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