日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

nRF51800 蓝牙学习 进程记录 2:关于二维数组 执念执战

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nRF51800 蓝牙学习 进程记录 2:关于二维数组 执念执战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  前天在玩OLED時想完成一直想弄得一個東西,就是簡單的單片機游戲。因為STM32和nRF51822的內存足夠,所以就用緩存數組的方法來顯示圖像(我也不知道術語是啥,反正就是在內存中建立一個128X64的二維數組,更新顯示時將整個數組刷新到屏幕上),而且這兩個OLED是串口的(還有一個128X32的OLED,一樣串口的,連驅動時序和驅動函數都一樣,兩個都太小了,還那么貴......),四個IO口就能驅動(兩個還是供電的VCC和GND),所以不像之前的那個mini 12864屏幕,它是8位并口的,帶讀寫功能,而這個串口的只能寫,不能讀(那個Mini12864是5V的,我試著不加外加電路用STM32沒驅動成功,可能是我水平不夠,另外總共十多個引腳,全弄轉換電路太復雜,而STM32的5V兼容當時我還不知道,就一直放著了,沒在用STM32 試過,為了簡單點使用12864,也為了做畢設,就又買了倆3.3V的),所以開辟一個緩存數組可以解決讀屏幕內容這個問題。(以后看還能想著補上三種12864的照片吧)

  但是在剛開始寫程序時就出了問題,就是對于二維數組的定義和引用出現了問題?,F在解決了,顧總結如下(僅我知道的和剛剛解決的)。

  1:二維數組在函數定義時,要定義到列,其中列數要與要傳遞來的二維數組的列向量數一致。如:

      定義一個二維數組:

      unsigned char T_image[4][6]={      //就是一個俄羅斯方塊的一個圖形的四個方向變換的圖形

              {0,1,0,1,1,1},

              { 1,0,1,1,1,0},

              {1,1,1,0,1,0},

              {0,1,1,1,0,1}};

  2:然后定義一個函數,此函數能夠調用上面二維數組,但不限于上面一個,則定義為:void Position_change(struct POSITION pos,unsigned char ch[][6]);,注意定義中對數組的定義,就是定義到列向量,并且下標數值與即將引用的數組的列向量下標相等值,而行向量下標則不需要寫(所以上面定義二維數組時最好行列向量下標值要統一)。使用時便可以直接傳遞一個定義了的二維數組,如在main中調用時寫為:Position_change(pos,T_image); 就可以了。

  3:若在這個定義的函數中還調用了另一個函數Draw_position,這個函數要使用ch[][6]傳遞的函數,則在定義這個函數時和上面那個函數一樣,定義到列向量:void?Draw_position(unsigned char ch[][6]);然后在上面那個函數中被調用時寫成 Draw_position(ch);就可以了,即二維數組變量作為傳遞函數時只需要寫方括號前面的名稱就好,不需要寫方括號,也不需要精確到列向量,和上面那個函數在main函數中調用一樣。即整體寫為:

      void Position_change(struct POSITION pos,unsigned char ch[][6])

        {?  Draw_position(ch);

          }

??  4:若函數中還有對傳遞二維數組的for循環,則只需要對定義中的二維數組進行操作就行了:

    for(i=0;i<4;i++)

      for(n=0;n<6;n++)

        if(ch[i][n]==0).......    //ch就是指定義時的參數變量名稱,定義為啥就寫為啥好了,就能傳遞下來了

        else......

?

?

?  好了,基本就寫完了。其實這個很簡單,只是當時學的時候沒覺得這個重要,就簡單而過了。

  以后要寫點對nRF51822的應用體驗,擬想從開箱開始(額,用了好久了,跳過吧,從怎么連接電腦設置kile5并用SWD下載開始吧),但是不知道人家允許么......

?

  本文水平有限,內容很多詞語由于知識問題不嚴謹或很離譜,但主要作為記錄作用,能理解就好了,希望以后的自己和路過的大神對必要的錯誤提出批評與指點,對可笑的錯誤不要嘲笑,指出來我會改正的。

?

轉載于:https://www.cnblogs.com/zhinianzhizhan/p/5929765.html

總結

以上是生活随笔為你收集整理的nRF51800 蓝牙学习 进程记录 2:关于二维数组 执念执战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。