i2c通信 msp430g2553_BQ24195的使用:与MSP430G2553的I2C通信

前言

本文作为bq24195的I2C使用教程,主要涉及I2C通信代码的实现以及一些注意事项,硬件部分稍有涉及但不是主要内容。

正文

硬件连接图:

I2C的上拉电阻10K或4.7K都行,阻值影响的是跳变沿的时间,即使fast mode I2C通信的频率也才400k左右,所以影响不大。

软件例程

我们用的是G2553的硬件I2C,有中断法和查询法,不想用中断的可以用查询法。如果选择了低功耗,建议用中断法。

MSP430G2553硬件I2C驱动-中断法

IT已经给我们准备好了,直接照搬msp430g2xx3_usci_i2c_standard_master.c例程就行。稍微整理一下做成i2c.h和i2c.c文件,力求简洁美观。

/*

* i2c.h

*/

#ifndef I2C_H_

#define I2C_H_

#include

#define SLAVE_ADDR  0x6B    //BQ24195

#define MAX_BUFFER_SIZE     20

//******************************************************************************

// General I2C State Machine ***************************************************

//******************************************************************************

typedef enum I2C_ModeEnum{

IDLE_MODE,

NACK_MODE,

TX_REG_ADDRESS_MODE,

RX_REG_ADDRESS_MODE,

TX_DATA_MODE,

RX_DATA_MODE,

SWITCH_TO_RX_MODE,

SWITHC_TO_TX_MODE,

TIMEOUT_MODE

} I2C_Mode;

void initClockTo16MHz();

void initI2C();

void CopyArray(uint8_t *source, uint8_t *dest, uint8_t count);

I2C_Mode I2C_Master_WriteReg(uint8_t dev_addr, uint8_t reg_ad

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值