else
{
printf('error');
while(1);
}
/*打印數(shù)據(jù)*/
printf('讀取原始的2個(gè)扇區(qū)數(shù)據(jù)為:');
for(i =0;i< 0x200;i++)
{
if(i%20==0)
printf('n17扇區(qū)第%d到%d的數(shù)據(jù)為:rn',i,i+19);
printf('0x%02X ',rData2[i]);
}
printf('n');
/**************************讀取第34扇區(qū)數(shù)據(jù)**************************************************************/
/*##-3- Read the flash ########################*/
/*讀取數(shù)據(jù),rData讀取數(shù)據(jù)的指針,起始地址0x2000,讀取數(shù)據(jù)長(zhǎng)度0x200*/
if(BSP_W25Qx_Read(rData3,0x22000,0x200)== W25Qx_OK)
printf('讀取原始的34個(gè)扇區(qū)數(shù)據(jù)成功!n');
else
{
printf('error');
while(1);
}
/*打印數(shù)據(jù)*/
printf('讀取原始的34個(gè)扇區(qū)數(shù)據(jù)為: ');
for(i =0;i< 0x200;i++)
{
if(i%20==0)
printf('n34扇區(qū)第%d到%d的數(shù)據(jù)為:rn',i,i+19);
printf('0x%02X ',rData3[i]);
}
printf('n');
/**************************清除第0扇區(qū)數(shù)據(jù)為0**************************************************************/
/*##-2- Erase Block ##################################*/
if(BSP_W25Qx_Erase_Block(0) == W25Qx_OK)
printf(' QSPI Erase Block okrn');
else
{
printf('error');
while(1);
}
/*##-2- Written to the flash ########################*/
/* fill buffer */
printf(' 初始化數(shù)據(jù),清零第0扇區(qū)前0x200的數(shù)據(jù)!rn');
for(i =0;i< 0x200;i ++)
{
wData1[i] = 0;
rData1[i] = 0;
}
/*寫入數(shù)據(jù),wData寫入數(shù)據(jù)的指針,起始地址0x00,寫入數(shù)據(jù)長(zhǎng)度0x200*/
if(BSP_W25Qx_Write(wData1,0x00,0x200)== W25Qx_OK)
printf('清零第0扇區(qū)前0x200的數(shù)據(jù)成功!rn');
else
{
printf('error');
while(1);
}
/*##-3- Read the flash ########################*/
/*讀取數(shù)據(jù),rData讀取數(shù)據(jù)的指針,起始地址0x00,讀取數(shù)據(jù)長(zhǎng)度0x200*/
if(BSP_W25Qx_Read(rData1,0x00,0x200)== W25Qx_OK)
printf('讀取第0扇區(qū)前0x200數(shù)據(jù)成功!rnrn');
else
{
printf('error');
while(1);
}
/*打印數(shù)據(jù)*/
printf('讀取第0扇區(qū)前0x200數(shù)據(jù)為: rn');
for(i =0;i< 0x200;i++)
{
if(i%20==0)
printf('n第%d到%d的數(shù)據(jù)為:rn',i,i+19);
printf('0x%02X ',rData1[i]);
}
printf('n');
/**************************清除第17扇區(qū)數(shù)據(jù)為0**************************************************************/
/*##-2- Erase Block ##################################*/
if(BSP_W25Qx_Erase_Block(0x11000) == W25Qx_OK)
printf(' QSPI Erase Block okrn');
else
{
printf('error');
while(1);
}
/*##-2- Written to the flash ########################*/
/* fill buffer */
printf(' 初始化數(shù)據(jù),清零第17扇區(qū)前0x200的數(shù)據(jù)!rn');
for(i =0;i< 0x200;i ++)
{
wData2[i] = 0;
rData2[i] = 0;
}
/*寫入數(shù)據(jù),wData寫入數(shù)據(jù)的指針,起始地址0x1000,寫入數(shù)據(jù)長(zhǎng)度0x200*/
if(BSP_W25Qx_Write(wData2,0x11000,0x200)== W25Qx_OK)
printf('清零第2扇區(qū)前0x200的數(shù)據(jù)成功!rn');
else
{
printf('error');
while(1);
}
/*##-3- Read the flash ########################*/
/*讀取數(shù)據(jù),rData讀取數(shù)據(jù)的指針,起始地址0x00,讀取數(shù)據(jù)長(zhǎng)度0x200*/
if(BSP_W25Qx_Read(rData2,0x11000,0x200)== W25Qx_OK)
printf('讀取第17扇區(qū)前0x200數(shù)據(jù)成功!rnrn');
else
{
printf('error');
while(1);
}
/*打印數(shù)據(jù)*/
printf('讀取第17扇區(qū)前0x200數(shù)據(jù)為: rn');
for(i =0;i< 0x200;i++)
{
if(i%20==0)
printf('n第%d到%d的數(shù)據(jù)為:rn',i,i+19);
printf('0x%02X ',rData2[i]);
}
printf('n');
/**************************清除第34扇區(qū)數(shù)據(jù)為0**************************************************************/
/*##-2- Erase Block ##################################*/
if(BSP_W25Qx_Erase_Block(0x22000) == W25Qx_OK)
printf(' QSPI Erase Block okrn');
else
{
printf('error');
while(1);
}
/*##-2- Written to the flash ########################*/
/* fill buffer */
printf(' 初始化數(shù)據(jù),清零第34扇區(qū)前0x200的數(shù)據(jù)!rn');
for(i =0;i< 0x200;i ++)
{
wData3[i] = 0;
rData3[i] = 0;
}
/*寫入數(shù)據(jù),wData寫入數(shù)據(jù)的指針,起始地址0x22000,寫入數(shù)據(jù)長(zhǎng)度0x200*/
if(BSP_W25Qx_Write(wData3,0x22000,0x200)== W25Qx_OK)
printf('清零第34扇區(qū)前0x200的數(shù)據(jù)成功!rn');
else
{
printf('error');
while(1);
}
/*##-3- Read the flash ########################*/
/*讀取數(shù)據(jù),rData讀取數(shù)據(jù)的指針,起始地址0x00,讀取數(shù)據(jù)長(zhǎng)度0x200*/
if(BSP_W25Qx_Read(rData3,0x22000,0x200)== W25Qx_OK)
printf('讀取第34扇區(qū)前0x200數(shù)據(jù)成功!rnrn');
else
{
printf('error');
while(1);
}
/*打印數(shù)據(jù)*/
printf('讀取第34扇區(qū)前0x200數(shù)據(jù)為: rn');
for(i =0;i< 0x200;i++)
{
if(i%20==0)
printf('n第%d到%d的數(shù)據(jù)為:rn',i,i+19);
printf('0x%02X ',rData3[i]);
}
printf('n');
主程序。
while (1){
uart_data();
delay_1ms(10);
}
數(shù)據(jù)處理
void uart_data(void)
{
if(recv_end_flag ==1)//接收完成標(biāo)志
{
if(ReceiveBuff[0]==0x00)
{
printf('寫入數(shù)據(jù)長(zhǎng)度:%dn',Rx_len-2);
for(int i =0;i< Rx_len-2;i++)
{
wData1[ (i+ReceiveBuff[1]) ] = ReceiveBuff[i+2];
}
/*##-2- Erase Block ##################################*/
if(BSP_W25Qx_Erase_Block(0) == W25Qx_OK)
printf(' QSPI Erase Block okrn');
else
{
printf('error');
while(1);
}
/*寫入數(shù)據(jù),wData寫入數(shù)據(jù)的指針,起始地址0x00,寫入數(shù)據(jù)長(zhǎng)度0x200*/
if(BSP_W25Qx_Write(wData1,0x00,0x200)== W25Qx_OK)
printf('扇區(qū)0數(shù)據(jù)成功~~~~~~~~~~~~~~~~~~~~~~~~~~!rn');
else
{
printf('error');
while(1);
}
if(BSP_W25Qx_Read(rData1,0x00,0x200)== W25Qx_OK)
printf('讀取扇區(qū)0前0x200數(shù)據(jù)成功!rnrn');
else
{
printf('error');
while(1);
}
/*打印數(shù)據(jù)*/
printf('讀取扇區(qū)0前0x200數(shù)據(jù)為: rn');
for(i =0;i< 0x200;i++)
{
if(i%20==0)
printf('n第%d到%d的數(shù)據(jù)為:rn',i,i+19);
printf('0x%02X ',wData1[i]);
}
printf('n');
}
else if(ReceiveBuff[0]==0x17)
{
printf('寫入數(shù)據(jù)長(zhǎng)度:%dn',Rx_len-2);
for(int i =0;i< Rx_len-2;i++)
{
// Data[i]=ReceiveBuff[i+2];
wData2[ (i+ReceiveBuff[1]) ] = ReceiveBuff[i+2];
}
/*##-17- Erase Block ##################################*/
if(BSP_W25Qx_Erase_Block(0x11000) == W25Qx_OK)
printf(' QSPI Erase Block okrn');
else
{
printf('error');
while(1);
}
/*寫入數(shù)據(jù),wData寫入數(shù)據(jù)的指針,起始地址0x11000,寫入數(shù)據(jù)長(zhǎng)度0x200*/
上一篇:基于GD32E503主控芯片實(shí)現(xiàn)直流數(shù)控電源的設(shè)計(jì)
下一篇:STM32CUBEMX開發(fā)GD32F303(2)----讀保護(hù)與寫保護(hù)
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Alif 大幅增強(qiáng)邊緣 AI 處理器性能
- VS Code+PlatformIO搭建ESP32 Arduino開發(fā)環(huán)境
- ESP32學(xué)習(xí)筆記(49)——RFID RC522使用
- Esp32環(huán)境離線搭建參考
- ESP32使用舵機(jī)庫(kù)時(shí)的錯(cuò)誤
- ESP32 S3接ST7789屏幕線序
- Arduino IDE安裝ESP32開發(fā)環(huán)境的最簡(jiǎn)單方法
- 基于S3C44B0X和μC/OS-Ⅱ智能家居嵌入式系統(tǒng)設(shè)計(jì)
- 8位還能打,新唐推出全新工業(yè)級(jí)MCU
- EVAL-RHF310V1,基于 RHF310 運(yùn)算放大器的評(píng)估板
- MPC5777CEVB: MPC5777C主板和適配器
- 使用 MikroElektronika 的 BH1790GLC-E2 的參考設(shè)計(jì)
- OP184ESZ-REEL 高端負(fù)載電流監(jiān)控器的典型應(yīng)用
- 使用 NXP Semiconductors 的 PCF2129A 的參考設(shè)計(jì)
- 基于 LTC4110 的電池備份系統(tǒng)
- ADA2200SDP-EVALZ、ADA2200 同步解調(diào)器的調(diào)制和演示評(píng)估板
- DC324A,基于 LTC1876EG 的演示板 高效、低成本 3 輸出電源,7.5 至 24Vin,輸出 = 3.3V/5A、5V/5A、12V/0.2A
- 用于 MKL46Z256VLL4 MCU 的 TWR-KL46Z48M、Kinetis KL3x、KL4x 塔式系統(tǒng)模塊
- 使用 ON Semiconductor 的 FAN2519S 的參考設(shè)計(jì)
- 半導(dǎo)體關(guān)稅可能會(huì)使您的下一輛汽車更加昂貴
- 潮起!人形機(jī)器人成本的20%-30%——靈巧手,國(guó)產(chǎn)3大廠商正快速產(chǎn)業(yè)化!
- AB Dynamics發(fā)布用于無(wú)人駕駛測(cè)試的物體檢測(cè)系統(tǒng)
- AI重構(gòu)出行:高階輔助駕駛的破局之路
- 廣汽即將發(fā)布全新星源增程技術(shù)
- Yole表示,到2030年,數(shù)據(jù)中心芯片市場(chǎng)規(guī)模將達(dá)到5000億美元
- 綠色節(jié)能趨勢(shì)下的延時(shí)繼電器發(fā)展:低功耗設(shè)計(jì)與環(huán)保材料應(yīng)用
- 國(guó)內(nèi)車企在固態(tài)電池領(lǐng)域的挑戰(zhàn)和技術(shù)方案
- 資本熱捧 + 政策護(hù)航,2025 人形機(jī)器人能否叩開 “量產(chǎn)元年” 大門?
- 耐世特推出用于智能運(yùn)動(dòng)控制的 MotionIQ?軟件套件
- 基于STM32F103的GPIO模擬I2C操作AT24C02S-ST E2prom調(diào)試日志
- 阿里、微軟“看圖說(shuō)話”AI系統(tǒng)競(jìng)賽,WiMi微美全息機(jī)器人AI視覺突出
- 掉到坑里的夏普為什么“爬”不出來(lái)
- 三星電子首發(fā)1億8百萬(wàn)像素手機(jī)圖像傳感器,超震撼視覺
- 2018年美國(guó)專利機(jī)構(gòu)300強(qiáng)榜單,華為位列19
- 小米7價(jià)格曝光 驍龍845加持或超3000元
- 唐駿:未來(lái)5年 每個(gè)白領(lǐng)身邊都有一臺(tái)機(jī)器人陪伴
- 政協(xié)委員建議江蘇出臺(tái)工業(yè)機(jī)器人推廣計(jì)劃
- vivo X30首曝!屏幕指紋識(shí)別+異形全面屏
- 三星S9保護(hù)殼渲染圖曝光 新機(jī)特性確認(rèn)