24c512 c语言程序,msp430读写24c512程序

本文档提供了一个使用MSP430F169微控制器通过I2C协议读写24C512 EEPROM的C语言程序。程序涉及了I2C接口配置、数据传输和错误处理。通过这个程序,可以了解如何在MSP430上实现与24C512的通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原标题:msp430读写24c512程序

*文件名: f169i2c.c

*整体描述:MSP430F169硬件IIC软件,字节方式,主方式

* IIC接口:P3.3=SCL,P3.1=SDA;(开漏输出)

* 相应寄存器:地址寄存器 I2COA 用于存放自身从地址(从方式时才有用)

* 地址寄存器 I2CSA 用于存放外围的从机地址(主方式时才有用)

* 控制寄存器 U0CTL 硬件I2C的设置、使能、模式等。

发送控制寄存器 I2CTCTL

* 数据控制寄存器 I2CDCTL 指示I2C总线的状态

*

* U0CTL -- RXDMAEN,TXDMAEN,I2C, XA, LISREN,SYNC,MST,I2CEN

* 0 0 1 0 0 1 1 1 (0x17)

* I2CTCTL --I2CWORD,I2CRM,I2CSSEL1,I2XSSEL0, I2CTRX,I2CSTB, I2CSTP, I2CSTT

* 0 1 1 0 * 0 * *

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

#include

#include "fpgacode.h"

#define WR24C512

#define 1_1 (0x20)

#define LED1_0 (0xdf)

#define SDA_1 P3OUT |= BIT1 //串行数据线,SDA = 1

#define SDA_0 P3OUT &=~ BIT1 //SDA = 0

#define SCL_1 P3OUT |= BIT3 //串行时钟线,SCL = 1

#define SCL_0 P3OUT &=~ BIT3 //SCL = 0

#define SDADIR_IN P3DIR &=~ BIT1 //SDA,I/O口为输入

#define SDADIR_OUT P3DIR |= BIT1 //I/0口为输出

#define SDA_IN ((P3IN >> 1) & 0x01) //Read SDA

#define SCLDIR_IN P3DIR &=~ BIT3 //SCL,I/O口为输入

#define SCLDIR_OUT P3DIR |= BIT3 //I/0口为输出

#define SCL_IN ((P3IN >> 3) & 0x01) //Read SCL

#ifdef WR24C512

static int numi = 0; //Data Pointer

#else

static int numj = 0; //Data Pointer

#endif

#define I2CSLA 0x50

void I2c_Idle_Check(void)

{

while (I2CBUSY & I2CDCTL); // I2C ready? 在空闲状态:0,空闲;1:忙

}

void DelayTime10us(unsigned char n)

{

unsigned char i;

while(n--) // 5 cy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值