• 大小: 10KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-08
  • 语言: 其他
  • 标签:

资源简介

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);
_

评论

共有 条评论