ÈçºÎʹÓòÉÓÃSPI Flash´æ´¢ÖÐÎÄ×Ö·û¿âµÄ·½·¨ËµÃ÷ ÏÂÔØ±¾ÎÄ

ÈçºÎʹÓòÉÓÃSPI Flash´æ´¢ÖÐÎÄ×Ö·û¿âµÄ·½·¨ËµÃ÷

ÔÚǶÈëʽϵͳÖУ¬ÓÐʱºòÐèÒªÖÐÎÄ×Ö·ûÀ´±íʾÎÒÃǵÄijЩÐÅÏ¢£¬µ«ÊÇÖÐÎÄ×Ö·û¿â±¾ÉíÕ¼¾Ý¿Õ¼ä±È½Ï´ó£¬Òò´ËÓÐʱºò½ö½ö¶ÔϵͳÖÐÐèÒªµÄ×Ö·û½øÐбàÂ룬ÆäËüµÄÔòÊ¡µô£¬µ«ÊÇÕâÑù¶ÔÓÚ±à³Ìµ÷ÓÃ×Ö·ûʱÊDZȽÏÂé·³µÄ£¬Ö»ÄÜÒ»¸öÒ»¸ö½øÐе÷ÓÃÈ»»§ÏÔʾ¡£È»¶ø£¬ÓÐʱºòÔڱȽϴóµÄϵͳÖÐÐèÒªºÜ¶àµÄÖÐÎÄ×Ö·û£¬Èç¹û»¹ÊǶÔÐèÒªµÄ½øÐÐÒ»¸ö¸ö±àÂ뽫ÏԵ÷dz£·Ñʱ£¬´ËʱÓбØÒª²ÉÓÃÒ»¸ö×Ö¿âÀ´Íê³ÉÎÒÃǵŤ×÷¡£

ÔÚǶÈëʽϵͳÖУ¬ÓõñȽ϶àµÄÊÇGBK2312B±àÂëµÄ×ֿ⣨»¹ÓÐÒ»¸öÊÇUnicode±àÂ룩£¬±àÂëºóµÃµ½µÄÊÇÒ»¸ö×Ö·ûÊý×飬ÿһ¸öÖÐÎÄ×Ö·û¶ÔÓ¦¶à¸ö×Ö½Ú£¨¾ßÌå×Ö½ÚÊý¿´È¡Ä£µÄ´óС£©£¬ÐèÒªÏÔʾij¸ö×Ö·ûÖ»ÐèÈ¡µÃ¸Ã×Ö·ûµÄGBKÄÚÂ룬ȻºóÕÒµ½¸Ã×Ö·û¶ÔÓ¦Êý×éÖеĵØÖ·£¬×îºó½«Õâ¸ö×Ö·û¶ÔÓ¦µÄËùÓÐ×Ö½Ú°´ÕÕÔ¤¶¨µÄ¸ñʽдÈëÒº¾§ÆÁ¼´¿É¡£ÕâÑù²Ù×÷´øÀ´µÄ¼ò±ã¾ÍÊÇ£¬ÄãÏëÏÔʾij¸ö×Ö·ûÖ»ÐèÒÔ×Ö·û´®µÄ¸ñʽÊäÈë¸Ã×Ö·ûÈ»ºóµ÷ÓÃÏÔʾº¯Êý¾ÍÐÐÁË¡£ÕâʱÓиöÎÊÌâ³öÏÖÁË£¬7ǧ¶à¸ö×Ö·û±àÂëºóµÃÕ¼Óöà´ó¿Õ¼ä°¡£¿

´ó¸ÅÓÐ200KB£¬µ«ÊǶÔÓÚÏÖÔÚµÄMCU£¬±¾Éí×Ô´øµÄrom¾ÍºÜ±¦¹ó£¬ÁíÍâMCUµÄROMÔ½´óÆä³É±¾¾ÍÔ½¸ß¡£ËùÒÔ£¬Èç¹û½«200kbµÄ×Ö¿âдÈëMCU½«²»Ì«»®Ëã¡£²»½«×Ö¿â´æÈëMCU£¬¾ÍµÃ´æÈëÁíÍâÒ»ÖÖ½éÖÊÖУ¬ÕâÖÖ½éÖÊ¿ÉÄÜÊÇSD¿¨£¬ SPI Flash¡£¶ÔÓÚSD¿¨ÎÒûÓÐÊÔ¹ý£¬ËäÈ»ÈÝÁ¿´ó£¬µ«¾Ý˵¶ÁÈ¡ËٶȱȽÏÂý£¬ÁíÍâ·â×°½Ï´ó£¬Õ¼°å×ÓÃæ»ý£¬¸Ð¾õÊÊÓÃÓë´óµÄϵͳ°É£¬±ÈÈçMP3£»¶øSPI flash, Ìå»ýС£¬ÈÝÁ¿Ò²»¹¿ÉÒÔ£¬ÎÒËùÁ˽âµÄÒ²ÓÐ8MµÄ£¬¿ÉÄÜ»¹Óиü´óÈÝÁ¿µÄ¡£ºÃÁË£¬·Ï»°ÁËÕâô¶à£¬ÄÇô±¾ÎĽÓÏÂÀ´¾ÍÉÜÈçºÎÓÃSPI flash×öÖÐÎÄ×Ö¿â:

µÚÒ»²½£¬µ±È»ÐèÒªÄ㽫ÄãËùÓõÄSPIflasnµÄ³õʼ»¯ÒÔ¼°¶Áдº¯ÊýдºÃ£¨ÎÒʹÓõÄW25X16,2M£¬´«ÊäËÙÂÊ×î´ó74MHZ£¬ºÜ¿ìµÄ£»°å×ÓÖ÷оƬSTM32F103RBT6£©¡£Ð´º¯Êý£ºvoid W25X_Write_Bytes(uint32_t addr,u8* pBuffer, u16 nBytes) ×¢£ºW25X16дʱ£¬ÐèÒªÏȲÁ³ý¡£¶Áº¯Êý£ºvoid W25X_Read_Bytes(uint32_t addr, u8* pBuffer, u16 nBytes)µÚ¶þ²½£¬±àд´®¿Ú´«Ê亯Êý£¬²ÉÓô®¿ÚÖжϵķ½Ê½£¬²¨ÌØÂÊÉèÖÃΪ115200£¨²âÊÔûÓÐÎÊÌ⣩£¬½ÓÊÕÍⲿÊäÈëµÄÒ»¸ö×Ö½ÚºóÁ¢Âí½«ÆäдÈëSPI FLASH¡£Óë֮ǰÁ½¸ö×Ö·û±íʾһ¸ö×ֽڵķ½·¨ËÙ¶È

ÌáÉýÒ»±¶¡£´úÂ룺 u8 result; u32 pAddr=0;

void USART1_IRQHandler(void) {

if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) {

result = USART_ReceiveData(USART1); W25X_Write_Bytes(pAddr++,

USART_ClearITPendingBit(USART1, USART_IT_RXNE); // Çå³ý´®¿Ú½ÓÊÜÖÐ¶Ï } }

µÚÈý²½£¬ÉèÖÃÒ»¸ö°´¼ü½øÐвÁ³ý²Ù×÷£¬Í¨¹ý´®¿Ú»òÕßLCD½øÐн»»¥£¬ÒÔÌáʾÊÇ·ñ²Á³ýÍê³É¡£¿ÉÒÔ½øÐÐдFLASH¡£µÚËIJ½£¬ÖÆ×÷ÖÐÎÄ×ֿ⣬GB3212¿â°üº¬6768¸ö¼òÌåÖÐÎÄ£¬Ê×ÏÈ´ò¿ª¡°È¡µãÕó.exe¡±Èí¼þ£¬È»ºóÔÚÈí¼þÖдò¿ª¡°×Ö·û¿â.txt¡±Îļþ¡£

È»ºóÑ¡Ôñȡģ·½Ê½£¬¿ÉÒÔÉèÖÃ×ÖÌåÑùʽ¡¢´óСºÍ·½ÏòÉèÖõȡ£×¢Òâ¡°·½ÏòÉèÖá°Ñ¡ÏÕâÀïΪÁ˶ÔÓ¦¹¤³ÌÖеÄÏÔʾ³ÌÐò£¬Ñ¡Ôñ¡ª¡ªºáÏòȡ죬¸ßλÔÚ×ø¡£ÆäËüÑ¡ÏîÖ»ÒªÊʵ±ÐÞ¸ÄÏÔʾ³ÌÐò¾Í¿ÉÒÔ¡£

È»ºóµã»÷¡°Êä³ö¡°°´Å¥£¬½«ÔÚ¸ÃĿ¼Ïµõ½×ÖÄ£Êý×éÎļþ£¨temp.txt£©¡£µÚÎå²½£¬ÕûÀí×Ö¿âÎļþ¡£ÉÏÒ»²½µÃµ½µÄ×ÖÄ£Êý×éÎļþ»¹²»ÄÜÖ±½ÓʹÓã¬ÐèÒª½øÐÐÕûÀíÒÔÊʺϴ®¿Ú·¢ËÍ£¬È¥³ý¸÷ÖÖ×¢ÊÍ·ûºÍ±êµã×Ö·û£¬Ö»±£ÁôÁ½Î»×Ö·û×é³ÉµÄÊ®Áù½øÖƸñʽ¡£½Ó׎«¡°temp.txt¡±¸ÄÃûΪ¡°HzLib.txt¡±£¬È»ºóÔËÐС°ÕûÀí×Ö¿â.exe¡±£¬´Ëʱ½«µÃµ½ÕûÀíºÃµÄ×Ö¿â¡°OutHzLib.txt¡±È»ºó¾Í¿ÉÒÔÖ±½Ó½«¸Ã×Ö¿âͨ¹ý´®¿Ú·¢Ë͵½MCUÁË¡£

µÚÁù²½£¬´®¿Ú·¢ËÍÊý¾Ý¡£ÍƼöÓø½¼þÖеĴ®¿Úµ÷ÊÔÈí¼þ£¬ÒòΪÓÐЩÈí¼þÔÚ¶ÔÓÚÎļþ·¢ËÍÕâ¸ö¹¦ÄÜ×öµÃËÆºõÓÐЩÎÊÌâ¡£±¾ÈËÒ²²âÊÔÁËÁ½¿î´®¿Úµ÷ÊÔÈí¼þ£¬¾ù²»Äܵõ½½á¹û£¬Èç¹ûÓÐÆä

ËüºÃµÄÒ²¿ÉÒÔ£¬·´ÕýÖ»Òª´ïµ½Ä¿µÄ¾ÍÐС£ÉèÖô®¿Ú²ÎÊý£¬È»ºóÔÚ·¢ËÍÇøÉèÖÃÖй´Ñ¡¡°°´Ê®Áù½øÖÆ·¢ËÍ¡±£¬µã»÷¡°Æô¶¯ÎļþÊý¾ÝÔ­¡±Ñ¡ÏѡÔñÖÆ×÷ºÃµÄ×Ö¿â¡°OutHzLib.txt¡±£¬²»Òªµã»÷¡°ÎļþÔØÈ롱¡£

µÚÆß²½£¬´ò¿ª´®¿Ú£¬½«°å×Ó½ÓͨµçÔ´£¬Ê×ÏȶÔFlash½øÐвÁ³ý²Ù×÷£¬Ìáʾ²Á³ý½áÊøºó£¬µã»÷´®¿Ú·¢ËÍ£¬È»ºó¾ÍÂýÂýµÈ×Å×Ö¿âдÈëFLASH¡£²âÊÔÔÚ²¨ÌØÂÊΪ115200Ï£¬È¡Ä£´óСΪ16*16£¬ºÄʱΪ70s£¬ËƺõÒ²²»Ì«¾Ã£¬Èç¹ûȡģԽ´ó£¬ºÄʱ¾ÍÔ½³¤¡£Ð´ºÃ×ÖÄ£ºó£¬¾Í¿ÉÒÔÔÚ¹¤³ÌÖе÷ÓÃ×Ö¿â½øÐÐÖÐÎÄÏÔʾÁË£¨È¡GBKÄÚÂë²Ù×÷¼û¹¤³Ì£©¡£ÁíÍâÈç¹ûflashÈÝÁ¿¹»´óµÄ»°£¬»¹¿ÉÒÔдÈëÆäËü×ÖÌåÑùʽºÍ´óСµÄ×ֿ⣬×öÒ»¸öרÊôµÄ×Ö¿âоƬ¡£