欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于單片機串口識別HEX

查看數: 4777 | 評論數: 7 | 收藏 2
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2018-4-7 19:01

正文摘要:

在網上看到一個很有意思的芯片,關于數字聲音識別的,其實覺得不如語音識別,但是又覺得數字聲音識別這個模塊也挺有意思 但是有很多不懂的地方,先在這里跟大家探討一下: 這個數字聲控芯片說默認的波特率是9600 ...

回復

ID:275111 發表于 2018-11-2 15:27
mark一下;厝タ础Vx謝樓上的高人。
ID:387733 發表于 2018-11-2 08:23
etxuxu 發表于 2018-4-10 17:15
這樣寫是對的嗎?求前輩幫我指點一下,最近串口這塊一直在學習:

中斷里面只完成接收,判斷與執行放在中斷外面,這樣更合理

int i=0;

void  serial() interrupt 4
{
     uchar temp;
     if(RI)
     {
        RI = 0;               //清除串行接受標志位
        temp = SBUF;
        if((temp==0xff) || (i>3))      // 收到 0xff 重新開始
           i=0;
        if((temp!=0xfc) && (i==1))   // 第2個不是 0xfc,放棄
           i=0;
        CN[i++]=temp;
     }
}
  


.......
    if(i==3)
    {
        if(CN[2] == 0x00)
        {
            switch(CN[3])
            {
               case(0x30):led1=0;delay(200);led1=1;break;
               case(0x20):led1=0;delay(200);led1=1;break;
               default: break;
             }
         }
        else if(CN[2] == 0x01)
         {
            switch(CN[3])
            {
                case(0x30):led2=0;delay(200);led2=1;break;
                case(0x20):led2=0;delay(200);led2=1;break;
                default: break;
             }
        }
    }

評分

參與人數 1黑幣 +20 收起 理由
yousunny + 20 贊一個!

查看全部評分

ID:414975 發表于 2018-11-1 19:56
謝謝分享。
ID:275111 發表于 2018-11-1 15:26
我草,我也是同樣的問題呀。高人,有下文了嗎?
ID:208180 發表于 2018-4-10 17:15
QIANLILI 發表于 2018-4-8 22:05
定義一個數組 例如 unsigned char CN[4];  在串口接收中斷里把收到的字符依次存進CN[0];  CN[1];  CN[2];   ...

這樣寫是對的嗎?求前輩幫我指點一下,最近串口這塊一直在學習:

  1. void  serial() interrupt 4
  2. {
  3.         int i;
  4.         if(RI)
  5.         {

  6.                 for(i=0;i<4;i++)
  7.                 {
  8.                         while(!RI)
  9.                         ES = 0;                //關閉串行中斷
  10.                         RI = 0;               //清除串行接受標志位
  11.                
  12.                         CN[i] = SBUF;            //從串口緩沖區取得數據
  13.                         if(CN[2] == 0x00)
  14.                         {
  15.                                 switch(CN[3])
  16.                                 {
  17.                                         case(0x30):led1=0;delay(200);led1=1;break;
  18.                                         case(0x20):led1=0;delay(200);led1=1;break;
  19.                                         default: break;
  20.                                 }
  21.                         }
  22.                         else if(CN[2] == 0x01)
  23.                         {
  24.                                 switch(CN[3])
  25.                                 {
  26.                                         case(0x30):led2=0;delay(200);led2=1;break;
  27.                                         case(0x20):led2=0;delay(200);led2=1;break;
  28.                                         default: break;
  29.                                 }
  30.                         }
  31.                 }
  32.                 ES = 1;    //允許串口中斷
  33.    }//if RI

  34.    if(TI)
  35.    {
  36.    }
  37. }
復制代碼
ID:208180 發表于 2018-4-10 16:06
QIANLILI 發表于 2018-4-8 22:05
定義一個數組 例如 unsigned char CN[4];  在串口接收中斷里把收到的字符依次存進CN[0];  CN[1];  CN[2];   ...

那應該如何把收到的字符存入CN[ ]呢?
要怎么去判斷幀尾?比如FF FC 00 01,得怎么判斷才能精確的把FF存入CN[0],FC存入CN[1],如此類推呢?
ID:160834 發表于 2018-4-8 22:05
定義一個數組 例如 unsigned char CN[4];  在串口接收中斷里把收到的字符依次存進CN[0];  CN[1];  CN[2];  CN[3];   再判斷4個字節內容  用swich case  分別定義收到的內容后做什么反應就可以了。

評分

參與人數 2黑幣 +30 收起 理由
admin + 20 回帖助人的獎勵!
etxuxu + 10 贊一個!

查看全部評分

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表