資源簡介
mb85系列鐵電存儲器C程序,讀寫??梢詰萌魏吻度胧较到y應用
代碼片段和文件信息
/*
*********************************************************************
**?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模型
評論
共有 條評論