首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将16位数据写入I2c协议

如何将16位数据写入I2c协议
EN

Stack Overflow用户
提问于 2015-03-24 07:36:03
回答 1查看 1.3K关注 0票数 0

我正在制作一个程序,在这个程序中,我使用INA226与atmega8进行I2C接口。我需要用值4127h写它的寄存器。下面是我所做的代码。当我正在读登记簿时,我得到的是41 FF。这意味着我可以写41,但不是27。我该怎么做呢?

另外,当我尝试将类似于4127h的值更改为3637h时(只是检查一下),它不会得到更改并显示旧的值41 Ff。帮帮忙,谢谢。

代码

代码语言:javascript
复制
i2c_init();
i2c_start();
i2c_write(0b10000000);  //slave address
i2c_write(0x00);        //register address
i2c_write(0x41);        // data
i2c_write(0x27);        // data
i2c_stop();

i2c_start();
i2c_write(0b10000001);
temp1 = i2c_read(1);
temp2 = i2c_read(0);
i2c_stop();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-11 12:17:13

代码语言:javascript
复制
enter code here 
unsigned int_16 DATA=4127
i2c_init();
i2c_start();
i2c_write(0b10000000);  //slave address
i2c_write(0x00);        //register address
i2c_write((int)DATA>>8);        // data OF MSB 
i2c_write((int)DATA & 0XFF);        // data OF LSB 
i2c_stop();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29227147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档