i2c通信 msp430g2553_msp430g2553的IIC通信

本文档详细介绍了如何使用msp430g2553微控制器进行I2C通信。通过SCCB_Start()、SCCB_SendByte()等函数实现器件地址设置与数据传输,并提供了错误处理机制。SCCB_GPIO_init()用于初始化GPIO,SCCB_ReadByte()和SCCB_WriteByte()则用于单字节读写操作。在主函数中配置时钟后即可开始通信。
摘要由CSDN通过智能技术生成

SCCB_Stop();

if(!SCCB_Start())

{

//return 0;

}

SCCB_SendByte( DEV_ADR + 1 );               /* 器件地址 */

if(!SCCB_WaitAck())

{

//SCCB_Stop();

//return 0;

}

while(length)

{

*pBuffer = SCCB_ReceiveByte();

if(length == 1)

{

SCCB_NoAck();

}

else

{

SCCB_Ack();

}

pBuffer++;

length--;

}

SCCB_Stop();

return 1;

}

/*

* IIC.h

*

*  Created on: 2017年11月25日

*      Author: Admin

*/

#ifndef IIC_H_

#define IIC_H_

#include "common.h"

#define CPU_F ((double)8000000)   //外部高频晶振8MHZ

#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))

#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

#define SCCB_DELAY()    delay_us(1)

#define DEV_ADR 0x90//设备地址

extern void SCCB_GPIO_init(void);

extern int SCCB_WriteByte( uint16 WriteAddress , uint8 SendByte);

extern int SCCB_ReadByte(uint8 *pBuffer,   uint16 length,   uint8 ReadAddress);

#endif /* IIC_H_ */

在主函数里面初始化一下时钟再调用一下SCCB_GPIO_init();之后就可以用SCCB_ReadByte和SCCB_WriteByte进行单字节的IIC通信了

SCCB_WriteByte

SCCB_WriteByte

[1] [2]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值