-
大小: 10KB文件類(lèi)型: .c金幣: 1下載: 0 次發(fā)布日期: 2021-05-08
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
mb85系列鐵電存儲(chǔ)器C程序,讀寫(xiě)。可以應(yīng)用任何嵌入式系統(tǒng)應(yīng)用
代碼片段和文件信息
/*
*********************************************************************
**?FileName:?MB85RCxx.c?
**?Function:?利用GPIO口模擬I2C通信,驅(qū)動(dòng)富士通MB85RC系列鐵電存儲(chǔ)器
**????????????支持的型號(hào):MB85RC64/64VMB85RC128/128V不支持MB85RC16/16V
**?CPU:????????MB9BF506R
**?注意:此程序僅供參考之用,不能保證其中不存在BUG
*********************************************************************
**?注意:如果硬件中使用寫(xiě)保護(hù)引腳,請(qǐng)?jiān)陬^文件中宏定義“USE_WP_PIN”;
**???????否則,請(qǐng)注釋掉該語(yǔ)句!!
*/
#include?“io_fm3.h“
#include?“MB85RCxx.h“
/*------I2C?operate--------------------------------------------------*/
/*
*-------------------------------------------------------------------------------
*?函數(shù)功能:?I2C總線延時(shí)
*?輸入數(shù)據(jù):?無(wú)
*?返?回?值:?無(wú)
*?注????意:?I2C總線延時(shí)可以根據(jù)自己的MCU運(yùn)行時(shí)鐘頻率進(jìn)行適當(dāng)?shù)恼{(diào)整
*-------------------------------------------------------------------------------
*/
#define?_nop_()??????Delay_us(2)????????/*在此定義你I2C總線的延時(shí)*/
void?Delay_us(unsigned?int?t)
{
?//??t?*=4;
???while(--t);
}
/*
*-------------------------------------------------------------------------------
*?函數(shù)功能:?IO初始化
*?輸入數(shù)據(jù):?無(wú)
*?返?回?值:?無(wú)
*-------------------------------------------------------------------------------
*/
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?
}
/*
*-------------------------------------------------------------------------------
*?函數(shù)功能:?I2C總線初始化
*?輸入數(shù)據(jù):?無(wú)
*?返?回?值:?無(wú)
*-------------------------------------------------------------------------------
*/
void?InitI2C(void)
{
???I2C_SCL_DAT(0);
I2CStop();
}
/*
*-------------------------------------------------------------------------------
*?函數(shù)功能:?發(fā)送總線起始信號(hào)
*?輸入數(shù)據(jù):?無(wú)
*?返?回?值:?無(wú)
*-------------------------------------------------------------------------------
*/
void?I2CStart(void)
{
???_nop_();
???I2C_SDA_DAT?(1);
???_nop_();
???I2C_SCL_DAT?(1);
_nop_();
I2C_SDA_DAT?(0);
_nop_();
I2C_SCL_DAT?(0);
_nop_();
}
/*
*-------------------------------------------------------------------------------
*?函數(shù)功能:?發(fā)送總線結(jié)束信號(hào)
*?輸入數(shù)據(jù):?無(wú)
*?返?回?值:?無(wú)
*-------------------------------------------------------------------------------
*/
void?I2CStop(void)
{
_nop_();
???I2C_SDA_DAT?(0);
_nop_();
I2C_SCL_DAT?(1);
_
評(píng)論
共有 條評(píng)論