<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> STM32 >> 瀏覽文章

        單片機關于關于圖像傳輸問題

        作者:龍麗嫦   來源:本站原創   點擊數:  更新時間:2014年05月07日   【字體:
             關于單片機關于關于圖像傳輸的幾個問題。雖然是單片機,但是也希望能給在使用4412開發板的朋友們一些思路。
         
         
              問題1:正在嘗試用STM32控制GPRS發送數據到互聯網。目前已經可以發送簡單數據,并在服務器接收。由于GPRS模塊每次最多發送1K的內容,所以,在發送靜態圖像時遇到問題。使用透傳的話,如何將一個5K左右的圖像發送出去呢?現在手頭有一個小于5K圖像做測試,為16進制的數組。
        主函數中有:send_gprs_data(pic[4051],1);
        調用函數 void send_grps_data(char * bufp, unsigned int count){}
        pic[4051]就是圖片數組,16進制。定義是u8 pic[]={}
        編譯時報錯:
        main.c(106): error:  #167: argument of type "u8" is incompatible with parameter of type "char *"
         
              原因:
        send_gprs_data((char*)pic,1);
        1參數類型不對,需要強制轉換
        2參數是個數組的話后面不能帶[4051]
         
              問題2:單步調試,一次可以發送數組中一個字節。我的困惑是,1,原先的pic[]數組內裝的16進制數據,每次發送的是AE,73這樣的數據,我在接收 端是否還要進行轉換?2,在發送控制部分,我用的是strlen(),但是有些人說要用sizeof(),這里,在強制轉換(char*)pic后,是否 在末尾添加了"\0",用strlen()行嗎?3,我在查看pic.c文件時,發現里面有好多空格,有8058個16進制數據(自己數的),但是用 strlen()得出結果4516。
         
              原因:每次發送的是AE,73這樣的數據,在接收端不需要進行轉換,進制不是問題。
        不能在末尾添加了"\0"。strlen原理是查找結束符來判斷長度的,你需要發送的是"數據"不是字符串,所以需要用sizeof強制轉換不會改變"數值"僅僅改變類型,所以不會末尾給你添加"\0"
        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮