資源簡介
經過了努力,查找了很多資料,終于可以利用STM32的SDIO操作文件系統讀寫了,但是發現為文件命名有問題,要熟悉rt_thread系統的可以上他官網下載說明書,地址:http://www.rt-thread.org/
算是對它的一個宣傳吧。
這里我是修改了下速度擦人sdcard.c里的一些內容使他可以操作我的金士頓4GSD2.0卡。
目前是可以正常操作的,工作在四位總線24MHZ DMA模式。
在這里介紹下經驗,很多操作沒有反應是因為缺少了必要的延時,因為sd卡處理命令也是要時間的,單片機發送命令太快會使得它沒有足夠時間處理,所以我加入了必要的延時,于是就可以正常使用了,但是偶爾還是有些問題的,另外重命名問題我還得上論壇討論下,呵呵。
最后鄙視下那些亂發資源的,明明是官方實例,很多卡都不能初始化就發出來,還有那些網頁亂指導的,我是因為你們的誤導才搞SD搞了一個星期。。強烈BS。。。。
算是對它的一個宣傳吧。
這里我是修改了下速度擦人sdcard.c里的一些內容使他可以操作我的金士頓4GSD2.0卡。
目前是可以正常操作的,工作在四位總線24MHZ DMA模式。
在這里介紹下經驗,很多操作沒有反應是因為缺少了必要的延時,因為sd卡處理命令也是要時間的,單片機發送命令太快會使得它沒有足夠時間處理,所以我加入了必要的延時,于是就可以正常使用了,但是偶爾還是有些問題的,另外重命名問題我還得上論壇討論下,呵呵。
最后鄙視下那些亂發資源的,明明是官方實例,很多卡都不能初始化就發出來,還有那些網頁亂指導的,我是因為你們的誤導才搞SD搞了一個星期。。強烈BS。。。。
代碼片段和文件信息
#include?“stm32f10x.h“
#include?“board.h“
#include?“touch.h“
#include?“setup.h“
#include?
#include?
#include?
#include?
#include?
#include?
/*
MISO?PA6
MOSI?PA7
CLK??PA5
CS???PC4
*/
#define???CS_0()??????????GPIO_ResetBits(GPIOCGPIO_Pin_4)
#define???CS_1()??????????GPIO_SetBits(GPIOCGPIO_Pin_4)
#define?CSTOUCH_H GPIOB->BSRR=GPIO_Pin_0
#define?CSTOUCH_L???GPIOB->BRR=GPIO_Pin_0?
#define?GET_PEN_INT (GPIOB->IDR&GPIO_Pin_12)
/*
7??6?-?4??3??????2?????1-0
s??A2-A0?MODE?SER/DFR?PD1-PD0
*/
#define?TOUCH_MSR_Y??0x90???//讀X軸坐標指令?addr:1
#define?TOUCH_MSR_X??0xD0???//讀Y軸坐標指令?addr:3
struct?rtgui_touch_device
{
????struct?rt_device?parent;
????rt_timer_t?poll_timer;
????rt_uint16_t?x?y;
????rt_bool_t?calibrating;
????rt_touch_calibration_func_t?calibration_func;
????rt_uint16_t?min_x?max_x;
????rt_uint16_t?min_y?max_y;
};
static?struct?rtgui_touch_device?*touch?=?RT_NULL;
unsigned?char?SPI_WriteByte(unsigned?char?data)
{
/*?Loop?while?DR?register?in?not?emplty?*/
????while(SPI_I2S_GetFlagStatus(SPI2?SPI_I2S_FLAG_TXE)?==?RESET);
????/*?Send?byte?through?the?SPI2?peripheral?*/
????SPI_I2S_SendData(SPI2?data);
????/*?Wait?to?receive?a?byte?*/
????while(SPI_I2S_GetFlagStatus(SPI2?SPI_I2S_FLAG_RXNE)?==?RESET);
????/*?Return?the?byte?read?from?the?SPI?bus?*/
????return?SPI_I2S_ReceiveData(SPI2);??
}
rt_inline?void?EXTI_Enable(rt_uint32_t?enable);
//SPI寫數據
static?void?WriteDataTo7843(unsigned?char?num)
{
????SPI_WriteByte(num);
}
#define?X_WIDTH?240
#define?Y_WIDTH?320
static?void?rtgui_touch_calculate()
{
????if?(touch?!=?RT_NULL)
????{
????????unsigned?int?touch_hw_tmp_x[10];
????????unsigned?int?touch_hw_tmp_y[10];
????????unsigned?int?i;
????????CSTOUCH_L;
????????for(i=0;?i<10;?i++)
????????{
????????????WriteDataTo7843(TOUCH_MSR_X);????????????????????????????????????/*?read?X?*/
????????????touch_hw_tmp_x[i]?=?SPI_WriteByte(0x00)<<8;??????????????????????/*?read?MSB?bit[11:8]?*/
__nop();
????????????touch_hw_tmp_x[i]?|=?SPI_WriteByte(0x00);????/*?read?LSB?bit[7:0]?*/
touch_hw_tmp_x[i]?>>=?3;
WriteDataTo7843(TOUCH_MSR_Y);?
????????????touch_hw_tmp_y[i]?=?SPI_WriteByte(0x00)<<8;??????????????????????/*?read?MSB?bit[11:8]?*/?
__nop();
????????????touch_hw_tmp_y[i]?|=?SPI_WriteByte(0x00);???????????/*?read?LSB?bit[7:0]?*/
touch_hw_tmp_y[i]?>>=?3;
????????}
????????WriteDataTo7843(?1<<7?);?/*?打開中斷?*/
????????CSTOUCH_H;
????????{
????????????unsigned?int?temp_x?=?0;
????????????unsigned?int?temp_y?=?0;
????????????unsigned?int?max_x?=?0;
????????????unsigned?int?min_x?=?0xffff;
????????????unsigned?int?max_y?=?0;
????????????unsigned?int?min_y?=?0xffff;
????????????for(i=0;?i<10;?i++)
????????????{
????????????????temp_x?+=?touch_hw_tmp_x[i];
????????????????temp_y?+=?touch_hw_tmp_y[i];
???????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.......???????579??2010-03-30?00:28??rtthread-0.3.0\AUTHORS
?????文件???????2386??2010-05-29?01:03??rtthread-0.3.0\bsp\stm3210\application.c
?????文件???????5813??2010-03-30?00:05??rtthread-0.3.0\bsp\stm3210\board.c
?????文件???????2184??2010-03-30?00:05??rtthread-0.3.0\bsp\stm3210\board.h
?????文件??????23508??2010-03-30?00:05??rtthread-0.3.0\bsp\stm3210\dm9000a.c
?????文件???????5212??2010-03-30?00:05??rtthread-0.3.0\bsp\stm3210\dm9000a.h
?????文件??????20588??2010-03-17?21:07??rtthread-0.3.0\bsp\stm3210\enc28j60.c
?????文件??????10797??2009-12-25?23:52??rtthread-0.3.0\bsp\stm3210\enc28j60.h
?????文件???????6804??2010-05-11?12:25??rtthread-0.3.0\bsp\stm3210\led.c
?????文件????????577??2009-12-25?23:52??rtthread-0.3.0\bsp\stm3210\led.h
?????文件??????17206??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\core_cm3.c
?????文件??????46533??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\core_cm3.h
?????文件??????15600??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\arm\startup_stm32f10x_cl.s
?????文件??????15872??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\arm\startup_stm32f10x_hd.s
?????文件??????12164??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\arm\startup_stm32f10x_ld.s
?????文件??????12564??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\arm\startup_stm32f10x_md.s
?????文件??????12917??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\gcc\startup_stm32f10x_cl.s
?????文件??????13560??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\gcc\startup_stm32f10x_hd.s
?????文件???????9830??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\gcc\startup_stm32f10x_ld.s
?????文件??????10340??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\gcc\startup_stm32f10x_md.s
?????文件??????16309??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\iar\startup_stm32f10x_cl.s
?????文件??????16709??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\iar\startup_stm32f10x_hd.s
?????文件??????12333??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\iar\startup_stm32f10x_ld.s
?????文件??????12594??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\startup\iar\startup_stm32f10x_md.s
?????文件?????593383??2010-05-17?04:06??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\stm32f10x.h
?????文件??????30622??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\system_stm32f10x.c
?????文件???????2404??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\CM3\system_stm32f10x.h
?????文件??????52463??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\Core\Documentation\CMSIS_Core.htm
?????文件??????39936??2009-10-17?06:47??rtthread-0.3.0\bsp\stm3210\Libraries\CMSIS\License.doc
?????文件???????1462??2009-11-19?18:58??rtthread-0.3.0\bsp\stm3210\Libraries\SConsc
............此處省略867個文件信息
- 上一篇:通風網絡解算程序 fortran90
- 下一篇:改進的BP神經網絡算法
評論
共有 條評論