久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1700|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

stm32f103驅(qū)動ch375b可讀寫優(yōu)盤扇區(qū)源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:154876 發(fā)表于 2022-11-13 15:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include  "ch375.h"
  5. #include  "led.h"



  6. #define ADDR 100//6600000//100         //要操作的U盤的扇區(qū)地址 物理扇區(qū)地址,用winhex打開物理磁盤可查看扇區(qū)地址數(shù)據(jù)

  7. u8 flag1=0;
  8. u8 Write_pbuf[512];   //數(shù)據(jù)緩沖區(qū)
  9. u8 Read_pbuf[2048];
  10. u8 status=0xff; //初始化狀態(tài)標(biāo)志

  11. //測試內(nèi)容:在優(yōu)盤或TF卡內(nèi)ADDR地址開始,連續(xù)寫4個扇區(qū)數(shù)據(jù),再從ADDR處連續(xù)讀4個扇區(qū)數(shù)據(jù)進(jìn)行匹配,驗證數(shù)據(jù)是否正確
  12. //可獲取優(yōu)盤或TF卡容量

  13. //注意:要先上電,再插入優(yōu)盤
  14. int main(void)
  15. {
  16.         u16 i=0;         
  17.         delay_init();                     //延時函數(shù)初始化          
  18.         LED_Init();
  19.        
  20.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  21.         uart_init(9600);         //串口初始化為9600       
  22.         printf("串口設(shè)置完畢\r\n");
  23.         delay_ms(100); //內(nèi)部電源上電的復(fù)位時間最大為40ms,這里延時一段時間防止出現(xiàn)CH375初始化失敗
  24.         CH375_GPIO_Init(); //初始化CH375B控制端口和數(shù)據(jù)端口 WR、RD、CS、A0、INT和P0~P7
  25.         CH375_WR_CMD(CMD_GET_IC_VER);  // 獲取芯片及固件版本
  26.         status=CH375_RD_DAT();  // 版本
  27.         printf("芯片版本為:%#x\r\n",status);
  28.         status=CH375Init(); //初始化CH375芯片,成功返回0,失敗返回1
  29.         printf("CH375芯片初始化值:%#x\r\n",status);
  30.         CH375_WR_CMD(CMD_DISK_MAX_LUN);  // 獲取USB存儲設(shè)備的最大邏輯單元號
  31.         status=CH375_RD_DAT();  // 最大邏輯單元號
  32.          printf("USB存儲設(shè)備的最大邏輯單元號為:%#x\r\n",status);
  33.         //status=InitDisk();         //初始化U盤,初始化成功返回0,不成功返回錯誤代碼 優(yōu)盤要上電后重新插拔一次再復(fù)位才能成功。SD卡不用
  34.          //注意:要先上電,再插入優(yōu)盤
  35.          status=CH375_InitDisk(); //成功 金士頓8G USB2.0優(yōu)盤 東芝16G USB3.0優(yōu)盤上電后插入初始化成功,,SD卡可不用插拔
  36.          printf("U盤初始化值:%#x\r\n",status);
  37.          status=Get_CH375DiskSize();//打印磁盤容量,單位MByte
  38.         for(i=0;i<512;i++)
  39.                 Write_pbuf[i]=i;//0x55;//           //向數(shù)據(jù)緩沖區(qū)中寫入0~255 0~255,共512個字節(jié)
  40.         printf("向緩沖區(qū)中裝入完畢\r\n");
  41.         //CH375WriteSector(ADDR+2,Write_pbuf);//將數(shù)據(jù)緩沖區(qū)中的512個字節(jié)的數(shù)據(jù)寫入U盤的第ADDR扇區(qū)中 單個扇區(qū)寫數(shù)據(jù)
  42.         CH375_WriteDisk(Write_pbuf,ADDR,4); //連續(xù)寫多個扇區(qū)數(shù)據(jù)
  43.         printf("寫 U盤扇區(qū)完畢\r\n");

  44.         for(i=0;i<2048;i++) //清空接收數(shù)據(jù)緩沖區(qū)
  45.         {
  46.                 Read_pbuf[i]=0;
  47.         }
  48.         printf("清空接收緩沖區(qū)完畢\r\n");
  49.         //CH375ReadSector(ADDR+1,Read_pbuf);//從U盤的第ADDR扇區(qū)中讀取512個字節(jié)的數(shù)據(jù)到數(shù)據(jù)緩沖區(qū)    單個扇區(qū)讀數(shù)據(jù)
  50.         CH375_ReadDisk(Read_pbuf,ADDR,4);  //連續(xù)讀多個扇區(qū)數(shù)據(jù)
  51.         //查看讀取到的幾個扇區(qū)數(shù)據(jù)
  52.                 for(i=0;i<10;i++)
  53.         {
  54.                 printf("讀取到的扇區(qū)數(shù)據(jù)為:i=%d   Read_pbuf[i]=%#x\r\n",i,Read_pbuf[i]);
  55.         }
  56.         for(i=520;i<530;i++)
  57.         {
  58.                 printf("讀取到的扇區(qū)數(shù)據(jù)為:i=%d   Read_pbuf[i]=%#x\r\n",i,Read_pbuf[i]);
  59.         }
  60.                 for(i=1030;i<1040;i++)
  61.         {
  62.                 printf("讀取到的扇區(qū)數(shù)據(jù)為:i=%d   Read_pbuf[i]=%#x\r\n",i,Read_pbuf[i]);
  63.         }
  64.                         for(i=1600;i<1610;i++)
  65.         {
  66.                 printf("讀取到的扇區(qū)數(shù)據(jù)為:i=%d   Read_pbuf[i]=%#x\r\n",i,Read_pbuf[i]);
  67.         }
  68.         printf("讀 U盤扇區(qū)完畢\r\n");

  69.         for(i=0;i<512;i++)
  70.         {
  71.                 if(Write_pbuf[i]!=Read_pbuf[i])  //對讀出的數(shù)據(jù)進(jìn)行匹配,如果不吻合則flag=1,否則flag=0
  72.                 {
  73.                         flag1=1;   //數(shù)據(jù)不吻合,flag1=1;
  74.                                 break;
  75.                 }
  76.         }
  77.         printf("匹配完畢\r\n");

  78.         for(i=0;i<512;i++) //清空發(fā)送數(shù)據(jù)緩沖區(qū)
  79.         {
  80.                 Write_pbuf[i]=0;
  81. //printf("扇區(qū)數(shù)據(jù)為:%#x\n",Write_pbuf[i]);         
  82.         }
  83.        
  84.         if(flag1)
  85.         {
  86.                 LED=1; //發(fā)光二極管滅
  87.                 printf("U盤扇區(qū)讀寫測試失敗!\r\n"); //數(shù)據(jù)不吻合
  88.         }
  89.         else
  90.         {         
  91.                 LED=0; //發(fā)光二極管點亮
  92.                 printf("U盤扇區(qū)讀寫測試成功!\r\n"); //數(shù)據(jù)吻合
  93.         }
  94.         printf("------------------------------------\r\n");
  95. while(1){
  96.         }
  97. }
復(fù)制代碼

Keil代碼下載: Keil代碼.7z (216.18 KB, 下載次數(shù): 11)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久高清 | 成人激情视频在线观看 | 成人精品国产免费网站 | 亚欧精品 | 成人国产午夜在线观看 | 亚洲午夜网 | 欧美日日 | 视频一区二区在线观看 | 久久久久久久av麻豆果冻 | 天天色天天色 | 日韩二三区 | 给我免费的视频在线观看 | 999精品在线观看 | 国产精品3区 | 日韩视频在线播放 | 久久99国产精品 | 中文字幕中文字幕 | 亚洲综合99| 国产免费一区二区三区 | 国产日韩免费观看 | 午夜影院免费体验区 | 久久精品视频9 | 伊色综合久久之综合久久 | 亚洲综合区 | 亚洲巨乳自拍在线视频 | 亚洲国产成人久久综合一区,久久久国产99 | 欧美日韩精品一区 | 日韩欧美视频 | 国产精品18hdxxxⅹ在线 | 五月婷婷激情 | 日韩欧美成人一区二区三区 | 日韩av免费在线电影 | 亚洲午夜精品一区二区三区他趣 | 午夜电影福利 | 欧美日韩网站 | 每日在线更新av | 福利一区在线观看 | 成人午夜视频在线观看 | 日韩在线不卡视频 | 欧美日韩亚洲一区 | 91精品国产色综合久久 |