stm32f103c8t6--sd卡的读写flash地址空间的数据读取
目錄
準備
一、SD卡的數據讀寫
1.目標
2.連線
3.寫入數據
4.讀出數據
二、Flash地址空間的數據讀取
1.目的
2.配置
3.代碼修改
三、總結
參考
準備
- 所需的軟件
STM32CubeMX、keil5、串口調試助手、mcuisp燒錄程序
- 所需硬件
stm32f103c8t6、SD卡以及卡槽、ST-link
一、SD卡的數據讀寫
工程代碼:
鏈接:https://pan.baidu.com/s/15OKDTTh3jUxreny_cY_2IQ?
 提取碼:asdf?
1.目標
欲達成目標:在SD卡創建一個文件,循環(不加延時)分批一次寫入256字節,累計寫入不少于64KB字節;然后讀取此文件數據,通過串口顯示出來。分析寫入和讀取的速率。
2.連線
stm32與串口之間的連線,我之前的博客有寫,不在贅述
3.寫入數據
打開工程文件
main.c
添加256字節的數據
?循環寫入250,寫完就有64k數據了
?
編譯燒錄
?
?串口寫入
?出現finish代表寫入完成
用讀卡器查看是否寫入成功
確實成功寫入那么多數據
4.讀出數據
打開工程文件
修改mian.c
定義讀出函數,指針標志s,且定義字節類型格式br和一個存儲讀取的數組READBUFF?
?
?修改f_open函數的第三個打開狀態為FA_READ模式。文件指針移至相應位置,否則無輸出。指針加地址使用FATS的read函數,第一個參數是指針,第二個是存儲數組,第三個是數組大小,第四個是強制轉換br為UINT格式。輸出
?
編譯燒錄,串口輸出
?依次輸出,我用了a,b,c,d,e來區分不同讀出次序
二、Flash地址空間的數據讀取
工程代碼鏈接:https://pan.baidu.com/s/14BeaTowYg0zw2V1G1p85nQ?
 提取碼:asdf
1.目的
Flash地址空間的數據讀取。stm32f103c8t6只有20KB 內存(RAM)供程序代碼和數組變量存放,因此,針對內部Flash的總計64KB存儲空間(地址從0x08000000開始),運行一次寫入8KB數據,總計復位運行代碼4次,將32KB數據寫入Flash。并驗證寫入數據的正確性和讀寫速率
2.配置
把ST-link與stm32c8t6按下圖連接好
?打開工程文件,點魔術棒,設置一下
?
點擊setting看看有沒有檢測到ST-link?
?
3.代碼修改
mian.c?箭頭處添加8k數據
flash.h
結束地址修改,起始地址加上64k數據16進制表示就是0X0801BA00
??
編譯、下載、調試(一件三連)
?View->memory windows->memory 1打開內存觀察窗口,并在地址欄中輸入:0x800c000,觀察將要修改的flash區間區容
?
然后看看結束地址與運算的結束地址是否一致,可以看到結束地址是0x0800DF40,正好是起始地址加上8k數據后的位置
?逐次修改起始地址三次,每次加8k的數據即16進制為1F40
分別修改為0x0800DF40、0X0800FE7F、0x08011DBF
檢驗是否寫入32k的數據,memory輸入最后的結束地址0X08013CFF
可以看到最后一個數據“5”在那個位置,說明已經寫入了32k數據
三、總結
實驗一實現了對SD卡的讀寫,通過stm32能對數據進行重復讀寫 。這些操作加深了對FATS讀取函數的認識。實驗二是對stm32的flash存儲空間的讀寫,此番操作下來確實有點繁瑣,但是做完后成就慢慢,而且進一步了解了flash存儲。
參考
STM32用cube配置FATFS模式下SPI讀寫SD卡_Drive World的博客-CSDN博客
總結
以上是生活随笔為你收集整理的stm32f103c8t6--sd卡的读写flash地址空间的数据读取的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 查看电脑连接过的所有无线的密码
- 下一篇: 我的大学四年——郭天祥
