注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
洛川子的个人空间 https://home.eeworld.com.cn/space-uid-453149.html [收藏] [复制] [分享] [RSS]
日志

430和AT45DB642D怎么进行SPI传输数据

已有 571 次阅读2013-1-6 15:05

/**********************************************
初始化
***********************************************/
void Spi_Init()
{
   P3SEL = 0x0e;//SPI
   P3DIR |= BIT0 + BIT1 + BIT3;//0 1 3 为输出    2为输入
   P3DIR &= ~BIT2;
   UCB0CTL1 = UCSWRST;//使能
   UCB0CTL0 |= UCMSB + UCMST + UCMODE_0+ UCSYNC + UCCKPL;
   UCB0CTL1 |= UCSSEL_2;  //SMCLK

   UCB0BR0 =0;                     
   UCB0BR1 =0; //0分频

   UCB0CTL1 &= ~UCSWRST;  
}
/**********************************************
函数功能:写data
函数参数:uchar Data
***********************************************/
void Write_Data(uchar Data)//此函数确定可以讲Data写入UCB0TXBUF,验证成功
{
  UCB0TXBUF = Data;
  while(!(IFG2&UCB0TXIFG));
}
/**********************************************
函数功能:等待不忙
函数参数:

//读取状态寄存器   
//bit7      bit6    bit6    bit6    bit6    bit6    bit6    bit6   
//RDY/BUSY  COMP    1   0   1   1   PROTECT PAGE SIZE
If bit 7 is a 1, then the device is
not busy and is ready to accept the next command
***********************************************/
void Until_Ready()//这里没有跳出循环
{
  uchar x=0x00;  
  while((x&0x80))//???????
  {
  AT45_CS_0;
  Write_Data(0xd7);
x = UCB0RXBUF;

  AT45_CS_1;
  }
}
我的理解就是,首先配置好430的spi。然后编写向flash写一个数据
然后读数据的话也是这样直接读取UCB0RXBUF 的内容,读出来是000,总是感觉这样不对,求指导啊。。。
全部作者的其他最新日志
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章