mini2440如何通过串口连接多个单片机

cuiy0002 2012-11-09 08:17:55
RT
2440是linux系统
求物理连接,和上位机程序
...全文
205 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
legionalways 2012-11-09
  • 打赏
  • 举报
回复
说下程序:关键是要设置好struct termios的成员 基本都是位操作 第一是是要设置成RAW 模式 在linux man中你可以找到 termios_p->c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); termios_p->c_oflag &= ~OPOST; termios_p->c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); termios_p->c_cflag &= ~(CSIZE | PARENB); termios_p->c_cflag |= CS8; 然后 基本的串口通讯都是无奇偶校验的,一个停止位,所以 termios_p->c_iflag &=~INPCK; //1 stop bit termios_p->c_cflag &=~CSTOPB; /* Enable the receiver and set local mode...*/ termios_p->c_cflag |= (CLOCAL | CREAD); 在设置速率 cfsetispeed(termios_p,B9600); cfsetospeed(termios_p,B9600); 最后一点很重要。。。 termios_p->c_cc[VMIN]=0;为什么是0呢?因为你要对多个单片机操作,考虑到地址码错误或者某个被呼叫的单片机因为故障down机的情况,上位机不可能一直等待,termios_p->c_cc[VTIME] 是等待时间,单位是百毫秒。。 tcsetattr这个函数用来使得串口生效, 至于打开串口,read and write就不要我说了吧?
of123 2012-11-09
  • 打赏
  • 举报
回复
有很多方法。 例如,给单片机端设置片选信号,当信号有效时单片机才进行串口通讯。 片选信号可以用 GPIO。例如借助 3 选 8 译码器,就可以用 3 条 GPIO 线控制 8 片单片机。 总之,方法多多。
aydf1 2012-11-09
  • 打赏
  • 举报
回复
如果是想使用一个串口连接多个,则考虑使用485或CAN总线方式连接
woshi_ziyu 2012-11-09
  • 打赏
  • 举报
回复
MINI2440有3 个串行口 可以连接3个单片机 如果是想使用一个串口连接多个,则考虑使用485或CAN总线方式连接
dsoyy 2012-11-09
  • 打赏
  • 举报
回复
如果是232串口,硬件上变动一点,比如:采用模拟开关,双刀双掷等等

27,509

社区成员

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

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