s3c6410无法和单片机进行串口通信

mcuman 2011-11-17 11:23:38
我用的是OK6410的开发板,现想和STC89C52单片机进行串口通信,他们的波特率都设成了9600。首先单片机和PC机串口通信没有问题,然后用6410和PC和串口通信也没问题,但是用6410和单片机直接通信就不行了,不知道错在哪个地方面。
----------------------------
6410程序
----------------------------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <termios.h>
#include <unistd.h>
#include <time.h>
#include <errno.h>
#include <string.h>
main()
{
int fd,i;
char buf[9];
struct termios tio;
if((fd=open("/dev/ttySAC1",O_RDWR|O_NDELAY|O_NOCTTY))<0)
{
printf("could not open\n");
exit(1);
}
else
{
printf("comm open success\n");
}

tio.c_cflag=B9600|CS8|CREAD|CLOCAL;
tio.c_cflag&=~HUPCL;
tio.c_lflag=0;
tio.c_iflag=IGNPAR;
tio.c_oflag=0;
tio.c_cc[VTIME]=0;
tio.c_cc[VMIN]=0;

tcflush(fd,TCIFLUSH);
tcsetattr(fd,TCSANOW,&tio);
fcntl(fd,F_SETFL,FNDELAY);

int j;
for(j=0; j<5; j++) {
i=write(fd,"a",1);
printf("write %d\n",i);
sleep(10);

}

close (fd);

}

请大家帮忙看下,到底是哪里错了?在和pc机通信中能够成功显示a。
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tommyfgj 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

终于搞通了,哈哈,原来是我的串口有问题,谢谢各位了
[/Quote]

请问楼主使用飞凌那个串口扩展吗?我也有意想做串口通信
mcuman 2012-02-18
  • 打赏
  • 举报
回复
终于搞通了,哈哈,原来是我的串口有问题,谢谢各位了
bjtea 2011-11-18
  • 打赏
  • 举报
回复
PC机的波特率很准确。两个开发板就不一定了。
降低点波特率再试一下,例如2400。
woshi_ziyu 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 mcuman 的回复:]
我用的是OK6410的开发板,现想和STC89C52单片机进行串口通信,他们的波特率都设成了9600。首先单片机和PC机串口通信没有问题,然后用6410和PC和串口通信也没问题,但是用6410和单片机直接通信就不行了,不知道错在哪个地方面。
----------------------------
6410程序
----------------------------
#include <……
[/Quote]
硬件电路对吗?信号线没接反吧

看看日志
mcuman 2011-11-18
  • 打赏
  • 举报
回复
回:1楼,降低波特率还没试过
回:2楼,硬件电路没有问题的,在这论坛里我发现了和我有同样问题的,是这样说的
/*-----------------------------------------------
51 <--> PC 通
ARM <--> PC 通

51 <--> ARM 当然要把原来的线中的Rx,Tx交叉一下了。
------------------------------------------------*/
现在我就只有一根串口线,找机会把RX TX交叉一下看看,是不是可以通信。

27,374

社区成员

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

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