CH571做USB大容量存儲器無法格式化磁盤,W25Q128 SPIFLASH
SPI? ? ? ? CH571
CS? ? ? ? ?PB12
CLK? ? ? ?PB13
SO? ? ? ? ?PB14
SI? ? ? ? ? ?PB15
現(xiàn)象顯示windows無法格式化
程序先初始化SPI讀取ID測試是否正常之后再顯示到LCD,已注意到SPI的IO切換
SPIFlash_Init(); ????LCD_Init(); ????LCD_Fill(0,?0,?240,?240,?BLACK); ????LCD_ShowString(0,?0,?"Speaker?Engine?V1.5",?16,?RED); ????show_str(0,?16,?"Hello?固件升級",?16,?BLUE); ????char?buf[16]; ????sprintf(buf,"F:%04X",flash_id); ????LCD_ShowString(0,?16,?buf,?16,?RED);
void?SPIFlash_Init(void) { ????GPIOB_SetBits(?GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14?); ????GPIOB_ModeCfg(?GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14,?GPIO_ModeOut_PP_5mA?); //?MOSI/SCK/CS ????GPIOB_SetBits(?GPIO_Pin_15?); ????GPIOB_ModeCfg(?GPIO_Pin_15,?GPIO_ModeIN_PU?); //?MISO ????R16_PIN_ALTERNATE?|=?RB_PIN_SPI0;//PB12~15 ????//SPI0_MasterDefInit(); ????R8_SPI0_CLOCK_DIV?=?4;?//?主頻時鐘4分頻 ????R8_SPI0_CTRL_MOD?=?RB_SPI_ALL_CLEAR; ????R8_SPI0_CTRL_MOD?=?RB_SPI_MOSI_OE?|?RB_SPI_MISO_OE?|?RB_SPI_SCK_OE; ????R8_SPI0_CTRL_CFG?|=?RB_SPI_AUTO_IF;?????//?訪問BUFFER/FIFO自動清除IF_BYTE_END標(biāo)志 ????R8_SPI0_CTRL_CFG?&=?~RB_SPI_DMA_ENABLE;?//?不啟動DMA方式 ????SPI0_DataMode(?Mode3_HighBitINFront?);//高位在前——W25Q64均支持模式0/3 ????SPI0_CLKCfg(?4?); ????flash_id?=?SPIFlash_ReadID(); ????//printf("id:0x%04x\n",?SPIFlash_ReadID()?); }
LCD之后切換回SPI IO用于驅(qū)動LCD
void?LCD_GPIO_Init(void) { ????if(0) ????{ ????????//背光 ????????GPIOA_ResetBits(GPIO_Pin_10); ????????GPIOA_ModeCfg(GPIO_Pin_10,?GPIO_ModeOut_PP_5mA); ????} ????LCD_CS_Set(); ????LCD_DC_Set(); ????LCD_RES_Set(); ????GPIOB_ModeCfg(GPIO_Pin_7,?GPIO_ModeOut_PP_5mA); ????GPIOA_ModeCfg(GPIO_Pin_12?|?GPIO_Pin_13?|?GPIO_Pin_14?|?GPIO_Pin_15,?GPIO_ModeOut_PP_5mA); ????R16_PIN_ALTERNATE?&=?~RB_PIN_SPI0; ????R8_SPI0_CLOCK_DIV?=?4;?//?主頻時鐘4分頻 ????R8_SPI0_CTRL_MOD?=?RB_SPI_ALL_CLEAR; ????R8_SPI0_CTRL_MOD?=?RB_SPI_MOSI_OE?|?RB_SPI_SCK_OE; ????R8_SPI0_CTRL_CFG?|=?RB_SPI_AUTO_IF;?????//?訪問BUFFER/FIFO自動清除IF_BYTE_END標(biāo)志 ????R8_SPI0_CTRL_CFG?&=?~RB_SPI_DMA_ENABLE;?//?不啟動DMA方式 ????SPI0_DataMode(Mode3_HighBitINFront); }
測試讀取到ID為0xFFFF,SPI FLASH右側(cè)連接的IO已設(shè)置浮空輸入,SPI信號波形正常
不確定是不是SPI FLASH的MISO和MOSI信號接反了,可以幫忙確認(rèn)一下嘛
熱門產(chǎn)品 :
USB3.0 HUB控制器:CH634