|
// Erase Chip to 0xFF; Send Data:0xC7 */ void MX25L_Flash_ChipErase(void) { MX25L_Flash_WriteEnable(); MX25L_Flash_WaitIdle(); uint8_t data=MX25L_ChipErase; HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi6,&data,sizeof(data),1000); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET); MX25L_Flash_WaitIdle(); } /*Write Enable--OK Send Data:0x06 */ void MX25L_Flash_WriteEnable(void) { uint8_t data=MX25L_WriteEnable; HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi6,&data,sizeof(data),1000); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET); } void MX25L_Flash_WaitIdle(void) { while((MX25L_Flash_ReadStatusRegister()&0x01)==0x01); } /*Read Status Register; bit 7:SRWD, Status Register write protect bit 6 E, Quad Enable; default 0; 1 QI/O Mode and 0 non-QI/O modebit 5:BP3, Level of protected block bit 4:BP2, Level of protected block bit 3:BP1, Level of protected block bit 2:BP0, Level of protected block bit 1:WEL, Write enable latch; 1 enable and 0 disable bit 0:WIP, Write in progress bit; 1 busy and 0 idle Send Data:0x05 Return: bit0 */ uint8_t MX25L_Flash_ReadStatusRegister(void) { uint8_t Temp[1]; uint8_t data=MX25L_ReadStatusRegister; HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi6,&data,sizeof(data),1000); HAL_SPI_Receive(&hspi6,Temp,sizeof(Temp),1000); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET); return Temp[0]; } |
| 已经调试过了,功能正常; |
| 谢谢楼主分享 |
| 谢谢 分享!!!!!! |
微信公众号
手机版