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

串口问题怎么发送一个超过八位的字符串

前功尽弃 2021-01-12 浏览量:1118
怎么发送一个超过八位的字符串,发完一帧数据后再发送后面的数据,中间能有时间间隔吗。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 很简单的一条语句,检测串口不忙,数据放进去缓存区就好了。

    //========================================================================
    // 函数: void SendByte(uint8_t dat)
    // 描述: 串口1发送一个字节阻塞方式
    // 参数: 发送的字节
    // 返回: none
    // 版本: VER1.0
    // 日期: 2019-08-16
    // 备注: 
    //========================================================================
    void SendByte(uint8_t dat)
    {
     SBUF = dat;
     while(!TI);
     TI = 0;
    }
    
    //========================================================================
    // 函数: void SendStr(uint8_t *s)
    // 描述: 串口1发送字符串阻塞方式碰到0停止
    // 参数: 发送的字符串指针地址
    // 返回: none
    // 版本: VER1.0
    // 日期: 2019-08-16
    // 备注: 
    //========================================================================
    void SendStr(uint8_t *s)
    {
     while(*s!='\0')// \0 表示字符串结束标志通过监测是否字符串末尾
      {
      SendByte(*s);
      s++;
      }
    }

    • 发布于 2021-01-12
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 只能分多次发送,间隔可以用延时来实现,接收端也是才用相同解码机制
    • 发布于2021-01-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个需要一定的协议支持啦,数据具体如何发送,接收端如何处理,最好有协议来支持,这些协议可以是自定的,也可以找一些现成的。
    • 发布于2021-01-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接发就可以了,间隔单片机会自己处理的,是按你设置的波特率来进行发送的。
    • 发布于2021-01-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 字符串包含多个字节,肯定不止8位的

    然后串口发数据,一般通信协议上面要加帧头帧尾校验,可以没有时间间隔

    • 发布于2021-01-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

串口问题怎么发送一个超过八位的字符串