久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2144|回復: 12
收起左側

單片機C語言如何把高低位整合在一起?

[復制鏈接]
ID:447439 發表于 2022-5-23 08:55 | 顯示全部樓層 |閱讀模式
U8RH_data_H_temp=U8comdata;    COM();    U8RH_data_L_temp=U8comdata;    COM();    U8T_data_H_temp=U8comdata;    COM();    U8T_data_L_temp=U8comdata;    COM();
回復

使用道具 舉報

ID:161164 發表于 2022-5-23 11:40 | 顯示全部樓層
U16RH_data_temp = U8RH_data_H_temp;
U16RH_data_temp <<= 8;
U16RH_data_temp |= U8RH_data_L_temp;
回復

使用道具 舉報

ID:685462 發表于 2022-5-23 13:35 | 顯示全部樓層

c習慣這么寫,也可以
#include <stdint.h>
uint16_t temp = (uint16_t)(U8RH_data_H_temp<<8) + (uint16_t) U8RH_data_L_temp;
回復

使用道具 舉報

ID:891041 發表于 2022-5-24 09:58 | 顯示全部樓層
用union
回復

使用道具 舉報

ID:447439 發表于 2022-5-24 11:25 | 顯示全部樓層
lose2836 發表于 2022-5-23 13:35
c習慣這么寫,也可以
#include
uint16_t temp = (uint16_t)(U8RH_data_H_temp

寫的仔細,學習了。謝謝
回復

使用道具 舉報

ID:883242 發表于 2022-5-24 11:36 | 顯示全部樓層
移位太浪費時間了,用union或者指針操作。
回復

使用道具 舉報

ID:161164 發表于 2022-5-24 14:12 | 顯示全部樓層
Hephaestus 發表于 2022-5-24 11:36
移位太浪費時間了,用union或者指針操作。

我想到的指針用法是這樣,請指教
  1. #include <reg52.h>

  2. typedef         unsigned char        u8;  //0 to 255
  3. typedef         unsigned int        u16;  //0 to 65535
  4. typedef         unsigned long        u32;  //0 to 4294967295

  5. u8 U8RH_data_temp[2] = {0x12, 0x23};//{High Byte, Low Byte}
  6. u16 *U16RH_data_temp;

  7. void main()
  8. {
  9.                 U16RH_data_temp = (u16*)U8RH_data_temp;
  10.     while (1)
  11.     {
  12.     }
  13. }
復制代碼



回復

使用道具 舉報

ID:844772 發表于 2022-5-24 14:35 | 顯示全部樓層
union U16_union
{
unsigned int U16RH_data_temp;
unsigned char U8RH_H,U8RH_L;
} U16_data;
U16_data.U8RH_H= U8RH_data_H_temp;
U16_data.U8RH_L= U8RH_data_L_temp;
U16_data.U16RH_data_temp     //你要的合并的值,但這個用法跟芯片大小數有關,51沒問題
回復

使用道具 舉報

ID:624769 發表于 2022-5-24 14:53 | 顯示全部樓層
sfr  DPL = 0x82;
sfr  DPH = 0x83;
sfr16 DPTR = 0x82;
unsigned char testbyte_H = 0x12;   //8位
unsigned char testbyte_L = 0x34;   //8位
unsigned short testword;        //16位

void main()
{
            DPL = testbyte_L;          //存入低8位字節
            DPH = testbyte_H;        //存入高8位字節

            testword = DPTR;    //讀出 16位 字
            while(1);
}
回復

使用道具 舉報

ID:883242 發表于 2022-5-24 17:08 | 顯示全部樓層
lkc8210 發表于 2022-5-24 14:12
我想到的指針用法是這樣,請指教

可以用,但是要注意大小端問題。8位單片機本身不存在大小端問題,但是編譯器會給超過1個字節的數據按大端和小端來分配地址。
回復

使用道具 舉報

ID:1026496 發表于 2022-5-24 20:49 | 顯示全部樓層
可以使用共用體
回復

使用道具 舉報

ID:161164 發表于 2022-5-24 21:37 | 顯示全部樓層
Hephaestus 發表于 2022-5-24 17:08
可以用,但是要注意大小端問題。8位單片機本身不存在大小端問題,但是編譯器會給超過1個字節的數據按大端 ...

受教了~
回復

使用道具 舉報

ID:1012735 發表于 2022-5-25 00:24 | 顯示全部樓層
U16 data_Value = u8_HIGH * 0x100 + u8_LOW
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本三级电影免费观看 | 精品久久久久国产 | 久久精品成人 | 最新超碰 | 亚洲精品不卡 | 久久一 | 久久国产精品-久久精品 | 午夜视频在线免费观看 | 久久最新精品 | 凹凸日日摸日日碰夜夜 | 古典武侠第一页久久777 | 在线观看av网站 | www国产成人免费观看视频,深夜成人网 | 亚洲一区在线日韩在线深爱 | 欧美在线一二三 | 夜夜操av| 亚洲一区二区三区在线视频 | 国产精品高清一区二区三区 | 怡红院成人在线视频 | 成人在线精品视频 | 一区二区视频在线 | 色天堂视频 | 一区二区日韩 | 精品久久久久一区二区国产 | 午夜伊人 | 超碰在线影院 | 在线成人精品视频 | 久热精品在线观看视频 | 91视视频在线观看入口直接观看 | 玖玖操 | 精品一区二区三区在线视频 | 日本小电影在线 | 久久乐国产精品 | 久久极品 | 黄色一级大片在线免费看产 | 亚洲视频一区在线 | 日韩一二区在线 | 亚洲一区二区久久久 | 91丨九色丨国产在线 | 久久久久久久久91 | 国产中文字幕av |