<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      科大訊飛語音芯片xfs5152CE,分享遇到的一些坑

      首先 芯片手冊的I2C地址是寫地址,是8位的,真正的地址是7位地址,應該是0x40,最低位是讀寫位,讀置1,為0x81,寫置0,為0x80.

      如果是模擬I2C倒無所謂,最坑的是我用的是寄存器,所以必須要用7位地址才可以,這個地方坑了我好幾天。

      其次,在用uart串口的是時候,每次上電芯片會返回一個狀態值0x4A,但I2C是不會主動返回的,需要你去讀取

      我是在寫入語音之后接著讀取狀態字節

      上電第一次寫入數據并讀取,會得到0x4A,之后的再讀取都是0x41,0x4F

      程序部分

      我用的是msp430F5438A,I2C3

      1 void i2c3_start(unsigned char address)
      2 {
      3   UCB3I2CSA = address;
      4   while(UCB3CTL1 & UCTXSTP);
      5   UCB3CTL1 |= (UCTR + UCTXSTT);
      6   while(!(UCB3IFG & UCTXIFG));
      7   UCB3IFG &= ~UCTXIFG;
      8 }
      1 void i2c3_writebyte(unsigned char data)
      2 {
      3   UCB3TXBUF =data;
      4   while(!(UCB3IFG & UCTXIFG));
      5   UCB3IFG &= ~UCTXIFG;
      6 }
      1 void i2c3_writeNbyte(unsigned char* data,int len)
      2 {
      3   for(int i=0;i<len;i++)
      4   {
      5     i2c3_writebyte(*data++);
      6   }
      7 }
       1 void i2c3_readNbyte(unsigned char *data,unsigned char len)
       2 {
       3   UCB3CTL1 &= ~UCTR;
       4   UCB3CTL1 |= UCTXSTT;
       5   for(int i=0;i<len;i++)
       6   {
       7     while(!(UCB3IFG & UCRXIFG));
       8     UCB3IFG &= ~UCRXIFG;
       9     if(i==len-1)UCB3CTL1 |= UCTXSTP;
      10     *data++ = UCB3RXBUF;
      11   }
      12 }
      1 int xfs_set(unsigned char* cmd,int len,unsigned char *data,int n)
      2 {
      3   i2c3_start(0x40);
      4   i2c3_writeNbyte(cmd,len);
      5   i2c3_readNbyte(data,n);
      6   return 0;
      7 }

      未完待續

       

      8月19號更新

      上面的停止條件處需要加上標志位判斷,不然后續i2c控制會卡死

      void i2c3_readNbyte(unsigned char *data,unsigned char len)
      {
        UCB3CTL1 &= ~UCTR;
        UCB3CTL1 |= UCTXSTT;
        for(int i=0;i<len;i++)
        {
          while(!(UCB3IFG & UCRXIFG));
          UCB3IFG &= ~UCRXIFG;
          if(i==len-1)
          {
            UCB3CTL1 |= UCTXSTP;
            while(UCB3CTL1 & UCTXSTP);
          }
          *data++ = UCB3RXBUF;
        }
      }
      更新

       

      以上為原創,請勿轉載

      歡迎討論!

       

      posted @ 2019-08-15 16:16  堯舜語  閱讀(3761)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 麻豆aⅴ精品无码一区二区| 人妻丰满熟妇AV无码区乱| 平陆县| 午夜一区二区三区视频| 天天做日日做天天添天天欢公交车| 亚洲一区二区三区影院| 福利一区二区不卡国产| 337p粉嫩大胆色噜噜噜| 国产精品美女免费无遮挡| 天堂网在线.www天堂在线资源| 精品人妻伦九区久久69| 仙游县| 99在线精品国自产拍中文字幕| 婷婷99视频精品全部在线观看| 国产成人精品一区二区| 国产精品色一区二区三区| 亚洲高清中文字幕在线看不卡| 一本色道久久加勒比综合| 狠狠人妻久久久久久综合九色| 国产成人8X人网站视频| 欧美人与性动交α欧美精品| 国产成人精品国产成人亚洲| 日韩人妻无码一区二区三区99 | 欧美人禽杂交狂配| 亚洲av色香蕉一区二区三| 久久久久久综合网天天| 亚洲成在人线AV品善网好看| 国产短视频精品一区二区| 又黄又无遮挡AAAAA毛片| 欧美性xxxxx极品| www内射国产在线观看| 国产真实精品久久二三区| 亚洲精品一区二区制服| 亚洲WWW永久成人网站| 成人精品老熟妇一区二区| 在线观看美女网站大全免费| 亚洲国产码专区在线观看| 瓦房店市| 国产成人无码免费视频在线 | 国产av永久无码天堂影院| 亚洲国产亚洲综合在线尤物|