基于飞思卡尔MC9S12XEP的SPI程序(2)

2018-12-11 10:17

Addr[16:23]

Dummy = SPIReadWriteByte(SPI2, ((uint8_t *)&Address)[1]); //write Addr[8:15]

Dummy = SPIReadWriteByte(SPI2, ((uint8_t *)&Address)[2]); //write Addr[0:7]

for(i=0; i

Dummy = SPIReadWriteByte(SPI2, Buf[i]); //write the data to be sent }

SPICSHigh(Chip); //bring the chosen chip's CS pin high SPIWaitBusy(Chip); //判忙 }

///---------------------------------------------------------------------------------------------------------- //Function: 擦除flash一个sector //Param: //Return: //note

///----------------------------------------------------------------------------------------------------------

SPI_EXT void SPIEraseSector(uint8_t Chip, uint32_t Address) {

SPIWriteEnable(Chip); //write enable SPIWaitBusy(Chip); //判忙

SPICSLow(Chip); //bring the chosen chip's CS pin down

Dummy = SPIReadWriteByte(SPI2, SPI_CMD_4K_ERASE); //write 4K_Erase

command Dummy = SPIReadWriteByte(SPI2, ((uint8_t *)&Address)[0]); //write Addr[16:23]

Dummy = SPIReadWriteByte(SPI2, ((uint8_t *)&Address)[1]); //write Addr[8:15]

Dummy = SPIReadWriteByte(SPI2, ((uint8_t *)&Address)[2]); //write Addr[0:7]

SPICSHigh(Chip); //bring the chosen chip's CS pin high

SPIWriteDisable(Chip);

SPIWaitBusy(Chip); //判忙 }

///---------------------------------------------------------------------------------------------------------- //Function: 擦除flash一个block //Param: //Return: //note

///----------------------------------------------------------------------------------------------------------

SPI_EXT void SPIEraseBlock(uint8_t Chip, uint32_t Address) {

SPIWriteEnable(Chip); SPIWaitBusy(Chip); //判忙

SPICSLow(Chip); //bring the chosen chip's CS pin down

Dummy = SPIReadWriteByte(SPI2, SPI_CMD_64K_ERASE); //write 64K_Erase command

Dummy = SPIReadWriteByte(SPI2, ((uint8_t *)&Address)[0]); //write Addr[16:23]

Dummy = SPIReadWriteByte(SPI2, ((uint8_t *)&Address)[1]); //write Addr[8:15]

Dummy = SPIReadWriteByte(SPI2, ((uint8_t *)&Address)[2]); //write Addr[0:7]

SPICSHigh(Chip); //bring the chosen chip's CS pin high

SPIWriteDisable(Chip);

SPIWaitBusy(Chip); //判忙 }

///---------------------------------------------------------------------------------------------------------- //Function: 擦除flash整片芯片 //Param: //Return: //note

///----------------------------------------------------------------------------------------------------------

SPI_EXT void SPIEraseChip(uint8_t Chip) {

SPIWriteEnable(Chip);

SPIWaitBusy(Chip); //判忙

SPICSLow(Chip);

Dummy = SPIReadWriteByte(SPI2, SPI_CMD_CHIP_ERASE);

SPICSHigh(Chip);

SPIWaitBusy(Chip); //判忙 SPIWriteDisable(Chip); }

/*---------------------------------------------------------------------------------------------------------- 向SPI_FlashBuf里面写入数据

------------------------------------------------------------------------------------------------------------*/ //SPI_EXT SPIWriteToBuf

/*---------------------------------------------------------------------------------------------------------- 向SPI_FlashBuf里面写入数据

------------------------------------------------------------------------------------------------------------*/

SPI_EXT void SPIWriteToBuf(uint8_t array[],uint8_t array_len) {

uint8_t i;

for(i=0;i< array_len;i++)

SPI_FlashBuf[i] = array[i];

SPI2CR1_SPIE=1;//给SPI缓冲区写完数据,打开中断,将数据写入到Flash里面。 }

/*---------------------------------------------------------------------------------------------------------- SPI Flash写入地址

------------------------------------------------------------------------------------------------------------*/

/*---------------------------------------------------------------------------------------------------------- SPI中断函数

------------------------------------------------------------------------------------------------------------*/ SPI_EXT void SPI2_Interrupt() {

static uint32_t Address = 0x000000;

SPIWritePage(0,Address, SPI_FlashBuf,Write_To_FlashDataSize);

//Address = Address + 0x000100 ;

// if(Address>=0x800000)

// Address=0x000000;

SPI2CR1_SPIE=0;//SPI中断函数给Flash写完数据后关闭中断。 }


基于飞思卡尔MC9S12XEP的SPI程序(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江省2011年导游考试《导游业务》标准模拟试卷5-中大网校

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: