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;
相关推荐
一只川页11 分钟前
arduino平台读取鼠标光电传感器
驱动开发·单片机·嵌入式硬件·计算机外设
爱学习的张哥2 小时前
UDP--DDR--SFP,FPGA实现之模块梳理及AXI读写DDR读写上板测试
单片机·fpga开发·udp·axi·ddr
一月千帆3 小时前
51单片机课设基于GM65模块的二维码加条形码识别
单片机·嵌入式硬件·51单片机
O。o.尊都假都4 小时前
STM32就业前景和下载KEIL软件(保姆级)
stm32·单片机·嵌入式硬件
「QT(C++)开发工程师」5 小时前
STM32 | FreeRTOS 消息队列
stm32·单片机·嵌入式硬件
sword devil9005 小时前
STM32烧录程序正常,但是运行异常
stm32·单片机·嵌入式硬件
YOYO--小天6 小时前
4G和5G模块的使用
linux·嵌入式硬件·5g
百里东风6 小时前
STM32IIC实战-OLED模板
stm32·单片机·嵌入式硬件
一月千帆7 小时前
基于STM32的INA226电压电流检测仪
stm32·单片机·嵌入式硬件
A-花开堪折8 小时前
OpenMCU(七):STM32F103开发环境搭建
stm32·单片机·嵌入式硬件