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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2298|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩1区2区| 中文字幕观看 | 日本手机在线 | 久久一二 | 亚洲九九精品 | av电影一区 | 欧美2区| 范冰冰一级做a爰片久久毛片 | 亚洲九色| 国产精品美女久久久久aⅴ国产馆 | 精品久久久久久久人人人人传媒 | 国产在线一区二区三区 | 午夜天堂精品久久久久 | 亚洲一区 中文字幕 | 日韩精品成人av | 国产一区二区三区在线 | 成人一区二区三区在线观看 | 成人在线播放网址 | 国产欧美视频一区二区 | 最新国产视频 | av在线黄| 99在线免费观看视频 | 美国av毛片 | 日韩一区二区三区视频在线播放 | 少妇午夜一级艳片欧美精品 | 精品一区二区电影 | 综合精品 | 国产日韩一区二区三区 | 一级高清免费毛片 | 国产精品美女久久久久久免费 | 日韩视频精品在线 | 国产日产精品一区二区三区四区 | 久久一区二区三区四区 | 亚洲精品二区 | 亚洲第一成年免费网站 | 国产精品久久久久久久久久三级 | 日本国产精品视频 | 中文字幕成人av | 中文字幕av免费 | 欧美精品一区二区免费视频 | 成人精品一区二区 |