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

單片機強制類型轉換

發布時間: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。這個轉換過程就需要你編寫函數進行轉換,而不是直接強轉的。

閱讀全文

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

熱點內容
壓縮文件的用法 瀏覽:32
如何用瀏覽器訪問伺服器地址 瀏覽:205
soft編譯器 瀏覽:113
三軸車床的編程指令 瀏覽:71
天生敏感pdf 瀏覽:565
西瓜星球伺服器怎麼刷鑽石 瀏覽:838
php生成chm 瀏覽:658
解釋程序和編譯程序產生目標嗎 瀏覽:609
dos命令rem 瀏覽:371
plc程序員水平高低 瀏覽:854
linux伺服器linux雲 瀏覽:373
大腳重置命令 瀏覽:130
app怎麼引導頁面 瀏覽:946
pdf轉換成w0rd 瀏覽:569
壓縮空氣屬於什麼能量類型 瀏覽:881
上海交警app怎麼付費 瀏覽:601
暗黑2怎麼切換伺服器 瀏覽:20
安卓如何玩港服游戲 瀏覽:350
程序員如何換個城市生活 瀏覽:147
JS開發PDF 瀏覽:286