资源简介
mb85系列铁电存储器C程序,读写。可以应用任何嵌入式系统应用
代码片段和文件信息
/*
*********************************************************************
** FileName: MB85RCxx.c
** Function: 利用GPIO口模拟I2C通信,驱动富士通MB85RC系列铁电存储器
** 支持的型号:MB85RC64/64VMB85RC128/128V不支持MB85RC16/16V
** CPU: MB9BF506R
** 注意:此程序仅供参考之用,不能保证其中不存在BUG
*********************************************************************
** 注意:如果硬件中使用写保护引脚,请在头文件中宏定义“USE_WP_PIN”;
** 否则,请注释掉该语句!!
*/
#include “io_fm3.h“
#include “MB85RCxx.h“
/*------I2C operate--------------------------------------------------*/
/*
*-------------------------------------------------------------------------------
* 函数功能: I2C总线延时
* 输入数据: 无
* 返 回 值: 无
* 注 意: I2C总线延时可以根据自己的MCU运行时钟频率进行适当的调整
*-------------------------------------------------------------------------------
*/
#define _nop_() Delay_us(2) /*在此定义你I2C总线的延时*/
void Delay_us(unsigned int t)
{
// t *=4;
while(--t);
}
/*
*-------------------------------------------------------------------------------
* 函数功能: IO初始化
* 输入数据: 无
* 返 回 值: 无
*-------------------------------------------------------------------------------
*/
void I2C_CtrlPin_Init(void)
{
IO_ConfigPort(I2C_SDA_PORTI2C_SDA_PIN IO_GPIO_MODE); /*config port */
IO_GPIOWriteData(I2C_SDA_PORTI2C_SDA_PIN0x0001); /* Write data */
IO_GPIOConfigPullup(I2C_SDA_PORTI2C_SDA_PINIO_PULLUP_DISCONN); /*pull-up setting */
IO_ConfigPort(I2C_SCL_PORTI2C_SCL_PINIO_GPIO_MODE); /*config port */
IO_GPIOWriteData(I2C_SCL_PORTI2C_SCL_PIN0x0002); /* Write data */
IO_GPIOConfigPullup(I2C_SCL_PORTI2C_SCL_PINIO_PULLUP_DISCONN); /*pull-up setting */
I2C_SDA_DIR_OUT();
I2C_SCL_DIR_OUT();
#ifdef USE_WP_PIN
IO_ConfigPort(I2C_WP_PORTI2C_WP_PIN IO_GPIO_MODE); /*config port */
IO_GPIOWriteData(I2C_WP_PORTI2C_WP_PIN0x0001); /* Write data */
IO_GPIOConfigPullup(I2C_WP_PORTI2C_WP_PINIO_PULLUP_DISCONN); /*pull-up setting */
I2C_WP_DIR_OUT();
#endif
}
/*
*-------------------------------------------------------------------------------
* 函数功能: I2C总线初始化
* 输入数据: 无
* 返 回 值: 无
*-------------------------------------------------------------------------------
*/
void InitI2C(void)
{
I2C_SCL_DAT(0);
I2CStop();
}
/*
*-------------------------------------------------------------------------------
* 函数功能: 发送总线起始信号
* 输入数据: 无
* 返 回 值: 无
*-------------------------------------------------------------------------------
*/
void I2CStart(void)
{
_nop_();
I2C_SDA_DAT (1);
_nop_();
I2C_SCL_DAT (1);
_nop_();
I2C_SDA_DAT (0);
_nop_();
I2C_SCL_DAT (0);
_nop_();
}
/*
*-------------------------------------------------------------------------------
* 函数功能: 发送总线结束信号
* 输入数据: 无
* 返 回 值: 无
*-------------------------------------------------------------------------------
*/
void I2CStop(void)
{
_nop_();
I2C_SDA_DAT (0);
_nop_();
I2C_SCL_DAT (1);
_
- 上一篇:进程隐藏工具HideApp
- 下一篇:PSCAD官方给的几个IEEE模型
评论
共有 条评论