CH32v20x单片机risc-v内核uint64_t类型移位后变量为0解决办法

CH32v20x单片机编写程序时遇到uint64_t 变量移位后为0。

cpp 复制代码
    uint64_t   temp1 = 0;
    uint64_t   temp2 = 0;


    temp1 = (pData[0]<<24)|(pData[1]<<16)|(pData[2]<<8)|pData[3];
    myResControlBoard.rcSetRes = temp1<<32;

    temp2 = (pData[4]<<24)|(pData[5]<<16)|(pData[6]<<8)|pData[7];

    myResControlBoard.rcSetRes |= temp2;

CH32v20x默认支持32位的扩展。所以在做超过32位的扩展时,需要添加(unsigned long long int)进行强制扩展 。

下面程序可以正常运行

cpp 复制代码
    temp1 = (pData[0]<<24)|(pData[1]<<16)|(pData[2]<<8)|pData[3];
    myResControlBoard.rcSetRes = (unsigned long long int)temp1<<32;

    temp2 = (pData[4]<<24)|(pData[5]<<16)|(pData[6]<<8)|pData[7];

    myResControlBoard.rcSetRes |= temp2;
相关推荐
2301_805962932 小时前
NRF24L01模块STM32通信-通信初始化
stm32·单片机·嵌入式硬件
阳光宅男@李光熠4 小时前
【电子通识】PWM驱动让有刷直流电机恒流工作
单片机·嵌入式硬件
半个番茄5 小时前
STM32 : 奈奎斯特-香农采样定理
网络·stm32·单片机
IT信息技术学习圈6 小时前
CSP初赛知识学习计划(第二天)
单片机·嵌入式硬件·学习
硬件技术我知道10 小时前
产品 防尘防水IP等级 划分与实验方法
网络·人工智能·嵌入式硬件·物联网·计算机视觉·硬件工程·智慧城市
JoneMaster11 小时前
[读书日志]从零开始学习Chisel 第三篇:Scala面向对象编程——类和对象(敏捷硬件开发语言Chisel与数字系统设计)
开发语言·嵌入式硬件·学习·硬件架构·scala
分享大师11 小时前
【小制作】米家模拟手指点击
单片机·gitlab
qq_5719572612 小时前
通过串口通信控制led灯的亮灭
c语言·stm32·单片机
hfffhfh13 小时前
STM32CUBEMX+PLS_D1000激光测距模块+MT6701角度传感器,获取三角形第三边角度
stm32·单片机·嵌入式硬件
1101 110114 小时前
STM32-笔记34-4G遥控灯
嵌入式硬件