SD card project part1 以STM32F407VG 寫入與讀取SD卡資料 main.c

main.c


這篇為我的main.c檔,再一開始的SD卡實做我們先不加入FAT filesystem,純粹實做SD卡藉由SPI的通訊方式做資料儲存,確認好讀寫功能後再加入FAT filesystem。程式部分接會用藍字標示

首先匯入標頭檔
我使用stm網站上提供的標準外部裝置library
#include "stm32f4xx.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_spi.h"
#include "stm32f4xx_usart.h"
Initsys.h 和my_diskio.h是我自己編寫的標頭檔
#include "Initsys.h"
#include "my_diskio.h"
int main()
{
uint8_t readbuff1[512]; 
uint8_t readbuff2[512];  
const uint16_t read_offset=0;
uint8_t mydata1[11]="Hello world";
uint8_t mydata2[13]="Good by world";
uint8_t res;

Spi2_Init(SPI_BaudRatePrescaler_256);//spi clock frequency = APB1/256 because my system clock is set to fast so in by case spi2 is in APB1 look the picture below  spi clock frequency=42MHz/256
Usart2_Int();
USART_puts(USART2,"starting init sd card \r\n"); 
res=SD_card_startup();
if(res==0){
 SD_data_write(0,2);//chose sector 1 to be write

 SD_data_write(0,1);//chose sector 2 to be write

 SD_data_read(readbuff1,1,0,512);//read sector 1
 SD_data_read(readbuff1,2,0,512);//read sector 2
 delay_ms(100);

}//end if (disk_initialize() success)
}//end main

留言

這個網誌中的熱門文章

freeRTOS Deleting a Task

05 Software Timer Management

Interrupt Management