我使用的是一个产品提供的SDK里的函数,其中要实现的功能是向选定的寄存器中写入一些数据进行控制,但是发现写入的数据最高位不是零的话写入数据正确,但是如果写入数据最高位有零,则写入寄存器的话,就会将前面N位的0无视,只注意后面非零的数,并将其写入寄存器的前几位。例如,寄存器是16位,当写入数据时1FFF时,读取该写入寄存器,为1FFF,正常。但当写入0013到刚才的寄存器时,写入的数实际是去掉前面的0,变成13,读取该寄存器得到的是13FF。
该SDK提供的函数是
GEF_STATUS gefVmeWrite16(GEF_VME_MASTER_HDL master_hdl,GEF_UNIT32 offset,GEF_UNIT32 num_element,GEF_UNIT16 *buffer);其中要写入寄存器中的数据,先写入 unsigned short类型的缓冲区buffer内。
请问如何让写入寄存器的数据高位是零时,写入的数据也是正确的?谢谢!