導航:首頁 > 操作系統 > 單片機強制類型轉換

單片機強制類型轉換

發布時間:2023-07-09 15:11:53

㈠ 51單片機數據類型轉換 高分!

假如你的串口發送函數叫SendData,接收函數叫RecvData,參考如下代碼

發送端:

intSendData(unsignedchar*pSendBuf,unsignedintnSendLen);
intRecvData(unsignedchar*pRecvBuf,unsignedintnBufLen);
voidmain(void)
{
floatf;
inti;
doubled;

SendData((unsignedchar*)&f,sizeof(float));
SendData((unsignedchar*)&i,sizeof(int));
SendData((unsignedchar*)&d,sizeof(double));
}

接收端:

voidmain(void)
{
floatf;
inti;
doubled;

RecvData((unsignedchar*)&f,sizeof(float));
RecvData((unsignedchar*)&i,sizeof(int));
RecvData((unsignedchar*)&d,sizeof(double));
}

宗旨就是,先取其他類型數據的地址,用&符號,然後把地址轉換為unsigned char*型,就可以通過*(unsigned char)的方式或(unsigned char)[]的方式訪問了,就這么簡單,希望可以幫到你.

㈡ 我使用的單片機AD採集的數據儲存到寄存器中的是u16(無符號16位),但是在運算中是float,怎麼解決類型轉換

「單片機AD採集的數據儲存到寄存器中的是u16(無符號16位)」
這個是指采樣得到的數字量讀數,要換算後才能得到實際的模擬值。例如16位ADC的采樣范圍是0~3.3V,那麼每個bit對應於50μV。當讀數為0x0123、即十進制的291時,代表此時采樣電壓為14.55mV左右。
「在運算中是float的」

這要看你運算中取用數據的要求。假如你運算時直接要以mV或μV為單位進行運算,例如上面的例子,你就需要將採集的u16值0x0123轉換為float型代表的14.55。這個轉換過程就需要你編寫函數進行轉換,而不是直接強轉的。

閱讀全文

與單片機強制類型轉換相關的資料

熱點內容
不卡點的解壓視頻 瀏覽:391
hex文件下載單片機 瀏覽:873
實現編譯器的自展技術 瀏覽:655
app開發者怎麼突破 瀏覽:418
安卓手機amr格式是什麼 瀏覽:555
找到最小的k個數並有序輸出python 瀏覽:595
thinkphp模板php標簽 瀏覽:164
如何識別毛筆字的app 瀏覽:669
安卓系統怎麼把圖片背景變透明 瀏覽:841
linuxtimercreate 瀏覽:41
阿里雲四路伺服器 瀏覽:311
麥當勞app如何指定門店配送 瀏覽:349
音樂樹app怎麼操作 瀏覽:642
三稜柱晶胞的演算法 瀏覽:387
飛貸app如何注銷賬號 瀏覽:228
伺服器如何支持大量數據的讀寫 瀏覽:601
汽車壓縮機磁吸不轉 瀏覽:549
python做網站登錄 瀏覽:242
查看javaapi 瀏覽:954
編程貓電子表格 瀏覽:526