你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

新手STM32学习笔记

[复制链接]
私奔 发布时间:2009-1-4 12:05
作者:阿九3 D1 C( C% d2 u8 `% c* j% j" B4 S
上周4终于买了块万利的STM32开发板,武汉本地的万利代理处买的,之前问了好久都没货,这次终于有了:)199还开了发票,尽管老板是分不愿意,没利润阿,再开个票亏了。。。
8 z/ }  Z  }) w( Z# {. w+ A! X代码我做了颜色高亮,看起来很舒服:)
& e- M" T" G5 `4 J* o; p& g咱也就初学者水平,目前对STM32还处在学习各种模块的阶段,so,高手们请多多指点,别介意小弟啰嗦把这点P东西都放网上~~
2 H: b! _/ @: F学这高级单片机,是想过几天把它用到雕刻机的控制上,解释下G代码呀,插补个圆弧直线啥的,顺便还和PLC通讯通讯:)
5 g  S4 E& \  Q9 l. R) e  z8 _: n/ d/ W7 u( ?# u# P
STM32笔记(零)我的STM32工程模板
( F4 B. r+ V5 z% i: j0 f. U6 O" Y& O1 N( v+ O
  这是我自己的STM32工程模板,其实和网上所有的都一样,其中包括IAR和MDK两个文件,各自包含FWLib2.0,解压缩后修改文件名即可使用。
- G4 o3 p5 G5 Z7 C  用法同网上的其他文件一致,用户代码在user文件夹下,main.c和stm32f10x_it.c
1 a8 f+ v' \+ Z8 @1 b+ I9 e4 |4 z- y  传一份上来供大家使用:) $ E( v" V# ?! q5 Y2 j8 O' i: j
 其中底层的SPI总线对SD卡的操作在SPI_SD_driver.c/h中,而FATFS的移植文件diskio.c中对磁盘的操作函数中将调用底层的操作函数。下面是一些底层操作函数:
! G" \- U  P* I/ V4 a2 `! ?4 W" Xu8 SPI_ReadWriteByte(u8 TxData);                                             //SPI总线读写一个字节
3 l# _* v" l. \* k6 E# L" cu8 SD_WaitReady(void);                                                           //等待SD卡就绪: ~, t( g# q, M0 F1 W& Y% x9 S
u8 SD_SendCommand(u8 cmd, u32 arg, u8 crc);                      //SD卡发送一个命令
. X% B/ H  e! O) F- M2 V5 iu8 SD_SendCommand_NoDeassert(u8 cmd, u32 arg, u8 crc);  //SD卡发送一个命令,不断线
0 N) ^1 C( @3 s' Z% ]. b8 E- Yu8 SD_Init(void);                                                                      //SD卡初始化
+ v8 F0 M4 \  n' L3 k. @) s+ w                                  - U( @- }% [* L/ \- Y3 a
u8 SD_ReceiveData(u8 *data, u16 len, u8 release);                   //SD卡读数据
: O9 ^1 V+ r' w- x8 O7 a  Nu8 SD_GetCID(u8 *cid_data);                                                   //读SD卡CID
8 C$ x' Q  R. I& y. k4 ju8 SD_GetCSD(u8 *csd_data);                                                 //读SD卡CSD
5 r! g- ^. ^, D' i, |u32 SD_GetCapacity(void);                                                     //取SD卡容量
$ L* p4 L2 \* D( R
8 \" t- p- x$ du8 SD_ReadSingleBlock(u32 sector, u8 *buffer);                      //读一个sector; F- S3 R2 b7 m* a8 V) S. S/ k2 V
u8 SD_WriteSingleBlock(u32 sector, const u8 *buffer);           //写一个sector/ W% \3 U8 p+ _: B2 H+ D
u8 SD_ReadMultiBlock(u32 sector, u8 *buffer, u8 count);       //读多个sector9 D+ i/ D" ^% f& n  P
u8 SD_WriteMultiBlock(u32 sector, const u8 *data, u8 count);  //写多个sector
# V! h% }" W7 s% [7 W# e. I
# z3 _7 Z$ f% j4 X- l' y  这是diskio.c中的一段代码,在disk初始化中,我们调用了SPI_SD_driver.c中的SD卡初始化函数。6 L5 ^' L% f( O
DSTATUS disk_initialize (3 T6 B' Y8 s! D+ q  `3 ~
    BYTE drv                /* Physical drive nmuber (0..) */
/ h4 P/ Y+ `3 r)
# [) V% O1 \. l6 R{
6 X, w1 Y; l# J( X    u8 state;& y- X. e% r9 P0 h6 Z8 K  V
& ~$ T3 |8 \, O) s% @* }1 \
    if(drv)
$ K* z' s+ f1 G# o) L4 S  q+ b    {
$ s/ z3 ]1 w& _$ M5 |8 y4 l        return STA_NOINIT;  //仅支持磁盘0的操作
, x  `7 Z1 B1 M1 \5 Q! g    }# m; `5 |# \% M" u. i, h

% Q9 r1 ^9 ~0 o) X+ `% Q+ i8 }    state = SD_Init();
! h, l+ H- Y4 k+ M2 \1 `    if(state == STA_NODISK)$ q+ n" ^+ p/ U% H* w
    {. f2 P0 x9 ^3 f; h) `" E
        return STA_NODISK;0 }% w8 U8 D4 i% b% X4 B7 ^* O) X
    }' \) C/ f! |) Y& H( |
    else if(state != 0)
5 d( C8 C. y7 ~; q$ S5 }: X    {8 u7 D3 u. s3 K: f- b% ~" \
        return STA_NOINIT;  //其他错误:初始化失败& h6 d% m" P: M: H3 O
    }% H6 w5 [& v6 N3 ^
    else, z. R: n8 v1 l
    {* u4 t% m% m5 H
        return 0;           //初始化成功/ _9 `7 }3 q9 c) P; ?$ T
    }
2 G- X9 C% N- z5 T( R7 j}
  U+ e2 p2 i. o* m+ s9 Z7 P3 {  : q' S0 N4 L, B; Y1 Q) U% x1 v
  总之FATFS文件系统具有很高的可移植性,经测试,在STM32的18MSPI时钟下,读文件的速度在每秒300K以上,写文件也有100多K的速度,应该说基本满足了嵌入式工程应用中,对磁盘读写的速度要求。如果进一步优化SD卡读写代码,速度应该还会有一定提高,同时还要注意的是FLASH自身读写速度没有ram那么快,通过更换SD卡发现读写速度和卡本身有直接的关系,所以应该尽量选择速度较快的卡。
收藏 评论3 发布时间:2009-1-4 12:05

举报

3个回答
zhanglmwuhan 回答时间:2009-6-13 15:23:47

RE:新手STM32学习笔记

好,赞一个,呵呵
zhanglmwuhan 回答时间:2009-6-13 15:24:19

RE:新手STM32学习笔记

好,赞一个,呵呵
huangsongyou 回答时间:2009-12-5 11:04:28

RE:新手STM32学习笔记

学习。。。。。。。。。。。。。。。。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版