• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

串口不够用,怎么办?

e1kv 2017-03-31 浏览量:1446
我要用好我个串口,但是单片机上就必个,串口不够用,怎么办?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 一、

    使用GPIO模拟

    二、

    扩展芯片GM8123/25、SP2338等等。

    或是并转串的。好多芯片方案,可以搜索下。

    间接的,可以使用74HC4052,但是不能同时使用几个串口。

    三、

    FPGA,这个对于只会MCU的会有点难度。

    四、

    可以参考:http://www.21ic.com/app/embed/201507/635189.htm


    • 发布于 2017-03-31
    • 举报
    • 评论 0
    • 3
    • 0

其他答案 数量:6
  • 如楼上所说,可以用GPIO口模拟串口,楼主用的是什么单片机呢?如果用的STC的话,官方都有提供模拟串口的示例程序:




    另外,楼主可以选择串口多一点的芯片,比如STC15W4K32S4系列的,本身都有4个串口,实在少了的话,模拟几个出来也应该够用了……要是需要更多的串口的话,估计就只能用扩展芯片了,或者用485多机通信,一主多从的形式……

    • 发布于2017-04-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 去找个多管脚的STM32,肯定够用,最大八路串口

    实在不行就用I2C去转,再不行就用USB转吧

    • 发布于2017-04-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 不要换片子,一个外中断口,一个io口,程序模拟即可。
    • 发布于2017-04-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 软串口 。

    换mcu。

    板子上集成多路mcu。

    • 发布于2017-04-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 你的问题描述好犀利,语句不顺,然后大家居然都看懂了,我其实就想问问,你要用几个串口,单片机上面是几个,

    不要骗我,结果发现单片机上的串口比你要用的多

    • 发布于2017-04-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 1. 先思考設計是不是需要這麼多UART

    2. 可用GPIO來模擬,以下是software UART的收發範例


    void recev() routine to recieve
    {
      unsigned char r=0;
      bit sbuff[8];
    
     if(P3.2==0)   //start bit detection
     while(r<8)
     {
        sbuff[r]=P3.2;
        r++;
        TR0=1;
          while(TF0==1);       //delay in between bits Timer 0 is used
        TR0=0;
     }
    if(P3.2==1)    //stop bit condition achieved
     TFLG=1;      //flag to indicate the receive has completed
    }
    void transmit_vir(unsigned char dat)  //a simple transmisson algorithm
    {
       unsigned char tx=0,cp_data;
    
            cp_data=dat;
    
            TX1=0;                                  //start bit
            TR0=1;               //timer start
                                    while(TF0==1);
            TR0=0;
            while(tx<8)
            {
                TX1=(0x80&dat)?1:0;    //8-bit data
                TR0=1;
    
                while(TF0==1);
                TR0=0;
                cp_data=cp_data<<1;
                tx++;
            }
          TFLG=1;                   //transmission flag
          TR0=1;                    //baud rate
    
           while(TF0==1);
            TR0=0;
            TX1=1;                                          //stop bit
    }

    然後STC也有包含範例,這篇有做講解

    http://www.51hei.com/bbs/dpj-39826-1.html

    下載

    http://cf03.ickimg.com/bbsfiles/201704/5adedeee2ea210957e37f2fc325a6bdc.rar

    總會有合適的,以上供參考

    • 发布于2017-04-02
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

串口不够用,怎么办?