【发布时间】:2010-07-02 17:48:18
【问题描述】:
我正在研究必须使用无线串行通信进行控制的机器人。机器人在微控制器上运行(通过烧录 .hex 文件)。我想用我的 Linux(Ubuntu) 电脑控制它。我是串口编程的新手。我可以发送数据,但无法读取数据。 在微控制器上运行的几段代码:
发送数据的函数
void TxData(unsigned char tx_data)
{ SBUF = tx_data; //Transmit data that is passed to this function
while(TI == 0); //wait while data is being transmitted
}
我通过字符数组 data_array[i] 发送数据
for (i=4;i<=6;i++)
{
TxData(data_array[i]);
RI = 0; //Clear receive interrupt. Must be cleared by the user.
TI = 0; //Clear transmit interrupt. Must be cleared by the user.
}
现在是运行在 Linux 上的 C 程序的一段代码...
> while (flag==0) {
> int res = read(fd,buf,255);
> buf[res]=0; /* set end of string, so we can printf */
> printf(":%s:%d\n", buf, res);
> if (buf[0]=='\0') flag=1;
}
它打印出 res = 0 的值。
实际上我想逐个字符地读取数据以执行计算并做出进一步的决定。还有其他方法吗?请帮忙,因为我无法继续进行项目。
注意:如果有人能推荐好的Linux串口编程的学习资料(代码),对我有帮助。
谢谢....
【问题讨论】:
标签: linux serial-port