TI论坛
直播中

李秀珍

8年用户 1061经验值
私信 关注
[问答]

INA226利用串口助手把读取的数据显示,但是输出的结果不对,为什么?

[list]
[*]请问有谁调试过INA226这块芯片的,能够给个QQ,想请教下问题。谢谢。
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define read_addr 0x81  //写配置寄存器时对应的器件地址
#define write_addr 0x80 //读转换结果时对应的器件地址

uchar H_AD; // H_AD用于存储高八位A/D转换结果
uchar L_AD; // L_AD用于存储低八位A/D转换结果

sbit SDA = P1^0;
sbit SCL = P1^1;


void delay_ms(uint n)
{
uchar i;
while(n--)
{
for(i=0;i<100;i++);
}
}

void Start(void)
{
SDA = 1;
    SCL = 1;
_nop_();_nop_();_nop_();_nop_();
SDA = 0;
_nop_();_nop_();_nop_();_nop_();
}
void Stop(void)
{
SDA = 0;
    SCL = 1;
_nop_();_nop_();_nop_();_nop_();
SDA = 1;
_nop_();_nop_();_nop_();_nop_();
}
void slave_ACK(void)
{
// SDA = 0;
// _nop_();_nop_();_nop_();_nop_();
// SCL = 1;
// _nop_();_nop_();_nop_();_nop_();
// SCL = 0;
   uchar i=0;
   SCL=1;
   _nop_();_nop_();_nop_();_nop_();
   while((SDA==1)&&(i<255))
      i++;
   SCL=0;
   _nop_();_nop_();_nop_();_nop_();
}
void check_ACK(void)
{
SDA=1;
SCL=1;
F0=0;
if(SDA==1)
    F0=1;
SCL=0;
}

void ATWriteByte(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
SCL = 0;
_nop_();_nop_();_nop_();_nop_();
SDA = ((dat<

回帖(2)

张桂芝

2024-12-27 10:18:48
A0A1是怎么连接的?主机给从机的地址是否给对了?另外,现有的程序,是否能够“写”出如图24那样的时序?由图24,首先要主机指定从机地址,然后发register pointer byte,然后才是写数据,检查一下程序是否写对了。
举报

张鸿青

2024-12-27 10:19:02
可能是延时有点问题
举报

更多回帖

发帖
×
20
完善资料,
赚取积分