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

單片機強制類型轉換

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

閱讀全文

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

熱點內容
程序員入門很難嗎 瀏覽:101
70後程序員照片 瀏覽:191
一個普通程序員能幹多久 瀏覽:934
adobe的PDF轉換器 瀏覽:857
單片機數字碼表匯編 瀏覽:481
單片機開發用的軟體 瀏覽:156
程序員8個演算法題 瀏覽:402
php題庫系統 瀏覽:225
王牌戰爭文明重啟選什麼伺服器 瀏覽:657
簡述對稱加密法 瀏覽:662
c語言數學編程 瀏覽:994
F1B命令 瀏覽:630
cs命令快捷鍵 瀏覽:852
阿里雲購買伺服器如何用現金支付 瀏覽:695
pythontime等待 瀏覽:993
單片機串列通信方式 瀏覽:503
android表格demo 瀏覽:282
安卓怎麼讓相冊不顯示網頁 瀏覽:319
php文件系統源碼 瀏覽:731
易信java 瀏覽:505