久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3391|回復: 4
打印 上一主題 下一主題
收起左側

51單片機串口如何接收數組?不理解

[復制鏈接]
跳轉到指定樓層
樓主
ID:891306 發表于 2021-4-2 16:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
手機發送數組后,單片機能接收該數組,并將該數組通過蜂鳴器音樂盒的方式播放出音樂我現在不理解的是,串口如何接收數組,懇請各位大佬指點一二。。。。謝謝



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:47286 發表于 2021-4-2 19:16 | 只看該作者
建立個數組 從0位開始 收一個就存一個進去 然后計數變量+1 就是下一個數組位號 以此類推直到存完所有接收的數據
回復

使用道具 舉報

板凳
ID:686782 發表于 2021-4-2 19:23 | 只看該作者
數組不就是多個同類型的集合嗎,你字符串不也相當于char數組嗎,不是照樣能發送 一個道理啊
比如一個char數組8個元素,你想辦法讓給他分八次發送不就行了  不知道大小的可以用sizeof求元素數目
如果你要同時發聲的話應該夠嗆,不太好協調 這種什么頻率音符的數組一般也比較大,串口通訊速率感覺會不太行。
你如果數組都能全部接到了,直接存下來不就行了,然后調用你的音樂播放函數。
回復

使用道具 舉報

地板
ID:891306 發表于 2021-4-3 10:09 | 只看該作者
void Usart() interrupt 4        //進入中斷服務函數
{
        if(form==2)
        {
     if(SBUF=='v')
                {
                        form=0;
                        SBUF=form;
                                timer0h=0;
                                timer0l=0;
                                time=1;
                                sec = 0;
                                num = 0;       
                  while(!TI);                         //等待發送數據完成
            TI=0;                                                 //清除發送完成標志位
                }
                if((form==2)&&(SBUF!='@'))//數組接收截止標志                                             //串口接收
                {       
    if((RI==0)&&(form==2))
   {
                 array[n]=SBUF;
                 SBUF=array[n];
     RI=0;
     n++;
           while(!TI);                         //等待發送數據完成
           TI=0;                                                 //清除發送完成標志位
          }
        }
        }


這是我寫的接收數組的程序,form==2的時候是接收數組模式。但是不知道哪里有問題,懇請大佬指點一下
回復

使用道具 舉報

5#
ID:824490 發表于 2021-4-3 15:06 | 只看該作者
1:定義一個接收計數器 RX_COUNT=0
2:定義一個接收數組 RX_BUF【64】,最多一次接收64B
3:接收中斷中:
i
{
    Res =USART_ReceiveData(USART1);    //接收一個B
  UART1_SendByte(Res);//有需要則反彈數據
  RX_BUF[RX_COUNT]=Res;//數據入組
    if ((RX_BUF[RX_COUNT]==0X0A)&&(RX_BUF[RX_COUNT-1]==0X0D)) // 判斷接收到結束符
        {
         RX_COUNT=0;//清除接收計數
         uart_cmd=1;//置全局標志,接收到完整 的一組數據
        }
     else RX_COUNT++;//沒有結束符,繼續等下一個字節
    if (RX_COUNT>64)

    {
      RX_COUNT=0;//計數溢出
      UART1_SendByte(Over_flag);//發送出溢出標志,讓對方重新發送

    }

    }
   
}
4:在Mian()中
  while(uart_cmd)

//處理接收到的有效數據



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频播放 | 欧美一区二区三区 | 91在线资源 | 亚州精品成人 | 成人免费区一区二区三区 | 欧美午夜精品 | 国产中文字幕网 | 国产91久久精品一区二区 | 午夜视频在线 | 久久综合一区二区三区 | 欧美精品一区二区三区在线 | 欧美jizzhd精品欧美巨大免费 | 久久最新精品视频 | 国产精品成人一区二区三区 | 婷婷色国产偷v国产偷v小说 | 中文字幕一区二区三 | 国内精品久久久久久久 | 啪一啪 | 日韩一区二区精品 | 欧美亚洲国产一区二区三区 | 91九色视频 | 国产成人精品午夜视频免费 | 日韩成人中文字幕 | 国产精品高潮呻吟久久 | 日韩视频免费看 | 日韩精品一区二区三区在线播放 | 日韩欧美国产精品一区 | 亚洲视频一区二区 | 国产免费看 | 国产中文字幕在线 | 欧美日韩1区2区3区 欧美久久一区 | 国产有码 | 国产精品成人久久久久 | 国产精品国产三级国产aⅴ无密码 | 日韩精品一区二区三区四区 | 国产剧情一区 | 久久精品国产亚洲a | 91 在线| 老头搡老女人毛片视频在线看 | 欧美区在线 | 激情一区二区三区 |