⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于msp430的m25p80 flash芯片读写擦除写保护控制程序
💻 C
字号:
//P4.7---SDA
//P4.6---SCL
#include "msp430x43x.h"
#define V80   0X01;
#define HOLD  0X02;
#define W     0X04;
#define STE   0X01;
#define SI    0X02;
#define SO    0X04;
#define UCLK  0X08;
#define Ram_addr 0x250;
#define uchar unsigned char
#define uint unsigned int


void SpiWrite(char *Bufer,int cnt);
void SpiRead(int cnt);
void ReadID(void);
uchar  RXBufer[5];

void SpiWrite(char *Bufer,int cnt){ //Bufer是写入的字符串,cnt是字符串的长度
  char data;
  int i,j;
  for(j=0;j<cnt;j++){
    data=Bufer[j];
    for(i=0;i<8;i++){
      P3OUT &= ~UCLK;      //SCK下降沿
      if(data&BIT7){        //高位是1;
        P3OUT |= SI;
      }       //主机输出1
      else{
        P3OUT &= ~SI;
      }      //主机输出0
      P3OUT |= UCLK;       //SCK上升沿
      data<<=1;
    }
  }
}
void SpiRead(int cnt){ //cnt是读入数据的个数,读入数据在RxBufrer[]中
  char data;
  int i,j;
  for(j=0;j<cnt;j++){
    for(i=0;i<8;i++){
      P3OUT &= ~UCLK;      //SCK下降沿
      if(P3IN&BIT2){
        data<<=1;
        data =data+BIT0;
      }
      else{
        data<<=1;
      }
      P3OUT |= UCLK;       //SCK上升沿
    }
    RXBufer[j] = data;
  }
}

void ReadID(void){ //read device’S ID;
  //int i;
  char command[4]={0xAB,0x00,0x00,0x01};     //0xAB是sst25P80的读ID指令 
  P3OUT &= ~STE;                             //选中芯片
  SpiWrite(command,4);                       //给flash芯片发指令
  SpiRead(1);                                //读取5个字符
  P3OUT |= STE;                              //CE拉高
}

void main(void)
{
  P1DIR |= 0x07;
  P3DIR |= 0x0B;
  P3DIR &= ~SO;                              //430的SO脚置为输入模式            
  P1OUT |= V80;                              //芯片供电
  P3OUT &= ~STE;                             //选中芯片
  P1OUT |= W;                                //芯片非写保护
  P1OUT |= HOLD;                             //芯片非hold模式
  P3OUT |= UCLK;                             //时钟线先置高
  //P4OUT |= 0x08; 
  WDTCTL = WDTHOLD+WDTPW;
  ReadID();
  while(1);  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -