CH32V208繼承了沁恆產(chǎn)品一貫的傳統(tǒng),即U盤(pán)的讀寫(xiě)功能。這使得盡管CH32V208的閃存要比CH32V307的小一倍,但有了U盤(pán)讀寫(xiě)功能的支持就可有效地緩解用戶對(duì)存儲(chǔ)空間的需求。它除了支持U盤(pán)的讀取,還支持對(duì)CS SD NAND (貼片式TF卡/SD卡) 這類器件的使用,將看圖8所示
圖1是U盤(pán)讀寫(xiě)功能的測(cè)試條件及構(gòu)成,在使用廠家例程的情況下其測(cè)試結(jié)果如圖2所示,由此可說(shuō)明其讀寫(xiě)功能正常。
圖1 測(cè)試條件
圖2 測(cè)試結(jié)果
圖3是進(jìn)行測(cè)試的文本文件及其內(nèi)容,由于文件前段所存放的是單字節(jié)的字符信息,故可以確保顯示與存儲(chǔ)內(nèi)容的一致性,若是存放漢字信息會(huì)因讀取字節(jié)數(shù)的問(wèn)題而出現(xiàn)異常。
圖3 測(cè)試文件
為了實(shí)現(xiàn)數(shù)碼相框的功能,實(shí)現(xiàn)在U盤(pán)讀寫(xiě)功能的基礎(chǔ)上為其添加了TFT屏的顯示功能,其顯示讀取數(shù)據(jù)的效果如圖4所示。
圖4 顯示測(cè)試
隨后,可將處理過(guò)的圖像數(shù)據(jù)存放到文件中以供讀取和圖像再現(xiàn)。
在圖像再現(xiàn)的過(guò)程中,其關(guān)鍵的地方就是按圖像文件的大小來(lái)限制讀取數(shù)據(jù)的數(shù)量,并將2個(gè)字節(jié)的數(shù)據(jù)拼接成一個(gè)16位的色彩數(shù)據(jù)從而在屏幕上繪制出一個(gè)彩色點(diǎn)。
通過(guò)讀取U盤(pán)的圖像數(shù)據(jù)文件,來(lái)就可實(shí)現(xiàn)圖像再的現(xiàn)。在具有多個(gè)圖像數(shù)據(jù)文件的情況下,依順序進(jìn)行顯示就可形成了一個(gè)具有圖片瀏覽效果的數(shù)碼相框,其顯示效果如圖5和圖6所示。
圖5 顯示效果
圖6 讀取狀態(tài)
通過(guò)讀取U盤(pán)圖像數(shù)據(jù)實(shí)現(xiàn)圖像再現(xiàn)的函數(shù)為:
void UDisk_PHOTO( void ){uint8_t ret;uint8_t i,t;uint16_t TotalCount = 0;uint8_t w=0;while(1) {Address_set(0+w*20,0+w*20,159+w*20,79+w*20);if(w==0) strcpy( (char *)mCmdParam.Open.mPathName,"/PHOTO/HKTK.BIN" );if(w==1) strcpy( (char*)mCmdParam.Open.mPathName, "/PHOTO/FJAA.BIN" );if(w==2) strcpy( (char*)mCmdParam.Open.mPathName, "/PHOTO/HYAA.BIN" ); ...if(w==7) strcpy( (char*)mCmdParam.Open.mPathName, "/PHOTO/HKTK.BIN" ); ret= CHRV3FileOpen( );if ( ret == ERR_MISS_DIR || ret ==ERR_MISS_FILE ) {LCD_ShowString(20,10,"NOFIND ... "); }else { TotalCount = N;Delay_Ms(10);while ( TotalCount ) {if ( TotalCount >(MAX_PATH_LEN-1) ) { t = MAX_PATH_LEN-1; }else { t = TotalCount; } ByteCount = t; ByteBuffer= &Com_Buffer[0]; ret = CHRV3ByteRead( ); TotalCount -= ByteCount;for ( i=0; i!= ByteCount; i++ ) {LCD_WR_DATA8(ByteBuffer[i]); }if (ByteCount < t ) {LCD_WR_DATA8(ByteBuffer[i]);break; } } i = CHRV3FileClose( ); mStopIfError( i ); } w++;//顯示:RTC電子時(shí)鐘 & 環(huán)境狀態(tài) if(w==8) { w=0; while(Bit_SET==GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)); //顯示:RTC電子時(shí)鐘 & 環(huán)境狀態(tài) } }Delay_Ms(500); } }
實(shí)現(xiàn)數(shù)碼相框功能的主程序?yàn)椋?/span>
int main(void){ Delay_Init( ); Udisk_USBH_Initialization( ); key_INIT(); App_TFTInit(); tft_Init(); LCD_Clear(RED); BACK_COLOR=RED; POINT_COLOR=YELLOW; LCD_ShowString(20,10," CH32V208");while(1) { UDisk_USBH_ByteOperation( ); } }
另外,還可添加RTC電子時(shí)鐘及環(huán)境狀態(tài)(如使用BH1750進(jìn)行光照強(qiáng)度檢測(cè)等)的顯示功能等,見(jiàn)圖7所示。
在實(shí)現(xiàn)RTC電子時(shí)鐘功能時(shí),需在文件ch32v20x_it.c中添加以下函數(shù)內(nèi)容:
void RTC_IRQHandler(void) { if (RTC_GetITStatus(RTC_IT_SEC) != RESET) {RTC_Get(); } if(RTC_GetITStatus(RTC_IT_ALR)!= RESET) {RTC_ClearITPendingBit(RTC_IT_ALR);RTC_Get(); } RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW); RTC_WaitForLastTask(); }
并在文件ch32v20x_it.h中添加以下函數(shù):
u8 RTC_Get(void);
在文件Udisk_Func_BasicOp.c中添加以下函數(shù)內(nèi)容:extern u8 RTC_Get(void);
extern vu8 houra;
extern vu8 mina;
extern vu8 seca;
圖7 電子時(shí)鐘測(cè)試
在圖片顯示過(guò)程中,實(shí)現(xiàn)RTC顯示的語(yǔ)句為:
RTC_Get();
LCD_ShowNum(240,60,houra,2);
LCD_ShowNum(264,60,mina,2);
LCD_ShowNum(288,60,seca,2);
Delay_Ms(500);
此外,它除了支持U盤(pán)的讀取,還支持對(duì)CS SD NAND (貼片式TF卡/SD卡) 這類器件的使用,將圖8多功能測(cè)試所示。
圖8
圖9
CS SD NAND 不用寫(xiě)驅(qū)動(dòng)程序自帶壞塊管理的NAND Flash(貼片式TF卡),尺寸小巧,簡(jiǎn)單易用,兼容性強(qiáng),穩(wěn)定可靠,固件可定制,LGA-8封裝,標(biāo)準(zhǔn)SDIO接口,兼容SPI/SD接口,兼容各大MCU平臺(tái),可替代普通TF卡/SD卡,尺寸6x8mm毫米,內(nèi)置SLC晶圓擦寫(xiě)壽命10萬(wàn)次,通過(guò)1萬(wàn)次隨機(jī)掉電測(cè)試耐高低溫,支持工業(yè)級(jí)溫度-40°~+85°,機(jī)貼手貼都非常方便,速度級(jí)別Class10(讀取速度23.5MB/S寫(xiě)入速度12.3MB/S)標(biāo)準(zhǔn)的SD 2.0協(xié)議使得用戶可以直接移植標(biāo)準(zhǔn)驅(qū)動(dòng)代碼,省去了驅(qū)動(dòng)代碼編程環(huán)節(jié)。支持TF卡啟動(dòng)的SOC都可以用SD NAND,提供STM32參考例程及原廠技術(shù)支持,主流容量:128MB/512MB/2GB/4GB/8GB,比TF卡穩(wěn)定,樣品可找雷龍發(fā)展申請(qǐng)免費(fèi)樣品測(cè)試。
-
NAND
+關(guān)注
關(guān)注
16文章
1718瀏覽量
137799 -
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4502瀏覽量
87061 -
STM32
+關(guān)注
關(guān)注
2289文章
11011瀏覽量
362333 -
flash內(nèi)存
+關(guān)注
關(guān)注
0文章
5瀏覽量
2237
發(fā)布評(píng)論請(qǐng)先 登錄
【評(píng)測(cè)試用】合眾HZ-T536開(kāi)發(fā)板免費(fèi)試用體驗(yàn)

2025電子發(fā)燒友開(kāi)發(fā)板評(píng)測(cè)大賽開(kāi)啟!三大賽道火力全開(kāi),頂級(jí)開(kāi)發(fā)板等你來(lái)戰(zhàn)!
免費(fèi)丨米爾 STM32MP257開(kāi)發(fā)板有獎(jiǎng)試用

有獎(jiǎng)丨米爾 瑞芯微YR3562開(kāi)發(fā)板免費(fèi)試用

沁恒微藍(lán)牙轉(zhuǎn)接芯片系列解析:CH9140/CH9141/CH9142/CH9143

有獎(jiǎng)試用!!RA-Eco-RA4M2-100PIN-V1.0開(kāi)發(fā)板試用活動(dòng)報(bào)名

沁恒CH541:E8051內(nèi)核的USB雙功能MCU

雷龍SD NAND測(cè)試報(bào)告
雷龍SD NAND試用
有獎(jiǎng)丨米爾 全志T536開(kāi)發(fā)板免費(fèi)試用

有獎(jiǎng)丨米爾 瑞芯微RK3576開(kāi)發(fā)板免費(fèi)試用

【CH32V208開(kāi)發(fā)板】HarmonyOS移植
【CH32V208】2、體驗(yàn)systick
【CH32V208開(kāi)發(fā)板】圖形庫(kù)u8g2的oled顯示
【GD32F303紅楓派開(kāi)發(fā)板使用手冊(cè)】第二十講 SPI-SPI NAND FLASH讀寫(xiě)實(shí)驗(yàn)

評(píng)論