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

新手STM32学习笔记

[复制链接]
私奔 发布时间:2009-1-4 12:05
作者:阿九
9 Y( W1 X  l5 K5 _7 I; c0 x上周4终于买了块万利的STM32开发板,武汉本地的万利代理处买的,之前问了好久都没货,这次终于有了:)199还开了发票,尽管老板是分不愿意,没利润阿,再开个票亏了。。。
# r- `& L4 m$ L6 S) S; x5 w! T代码我做了颜色高亮,看起来很舒服:)
0 }- N5 I  R- Q2 S9 X咱也就初学者水平,目前对STM32还处在学习各种模块的阶段,so,高手们请多多指点,别介意小弟啰嗦把这点P东西都放网上~~
1 p' G5 b  r& _; g学这高级单片机,是想过几天把它用到雕刻机的控制上,解释下G代码呀,插补个圆弧直线啥的,顺便还和PLC通讯通讯:) % |$ b2 Q% w' m% i
' T3 ~% ~" _5 {; P  `
STM32笔记(零)我的STM32工程模板
+ J) N. Q9 H. X& y* [* N
4 Z3 i2 [8 R3 |9 q' y: X( g( e% b  这是我自己的STM32工程模板,其实和网上所有的都一样,其中包括IAR和MDK两个文件,各自包含FWLib2.0,解压缩后修改文件名即可使用。
8 r: ~! I+ e9 s4 A% x# A& F2 \  用法同网上的其他文件一致,用户代码在user文件夹下,main.c和stm32f10x_it.c 8 t4 V* c! v1 l% l( |
  传一份上来供大家使用:) ; q4 W  t' I% Q
 其中底层的SPI总线对SD卡的操作在SPI_SD_driver.c/h中,而FATFS的移植文件diskio.c中对磁盘的操作函数中将调用底层的操作函数。下面是一些底层操作函数:
8 \$ ^% [: v% [+ s% Ru8 SPI_ReadWriteByte(u8 TxData);                                             //SPI总线读写一个字节
& g. c. _! s6 L& f2 N% Ou8 SD_WaitReady(void);                                                           //等待SD卡就绪
7 d. S1 s+ \2 {3 T' a: V3 C% B9 t! yu8 SD_SendCommand(u8 cmd, u32 arg, u8 crc);                      //SD卡发送一个命令: a6 O6 r+ M+ G
u8 SD_SendCommand_NoDeassert(u8 cmd, u32 arg, u8 crc);  //SD卡发送一个命令,不断线, _; U. C4 W- P0 x$ [% H# N0 y1 N; M
u8 SD_Init(void);                                                                      //SD卡初始化
& t2 U+ b0 U2 g                                 
0 n& ?  b# X8 s3 _u8 SD_ReceiveData(u8 *data, u16 len, u8 release);                   //SD卡读数据
, g' z" |1 N6 }u8 SD_GetCID(u8 *cid_data);                                                   //读SD卡CID# T5 M6 M/ [& P2 V/ r7 \
u8 SD_GetCSD(u8 *csd_data);                                                 //读SD卡CSD6 v; \0 Z; `9 U
u32 SD_GetCapacity(void);                                                     //取SD卡容量  J: b1 N6 u; |8 g! b8 E2 _

0 T5 D6 I) x( i2 z; c: S5 S* J) du8 SD_ReadSingleBlock(u32 sector, u8 *buffer);                      //读一个sector
& z0 P2 s# `% M+ g/ P- Tu8 SD_WriteSingleBlock(u32 sector, const u8 *buffer);           //写一个sector& r9 N  g- z( r- o; b( l
u8 SD_ReadMultiBlock(u32 sector, u8 *buffer, u8 count);       //读多个sector
' v5 r& W" i% V3 f' U9 Eu8 SD_WriteMultiBlock(u32 sector, const u8 *data, u8 count);  //写多个sector& g3 E% H" O% m

& e' z9 H6 w' o0 ^* g! O  e) \3 [& c  这是diskio.c中的一段代码,在disk初始化中,我们调用了SPI_SD_driver.c中的SD卡初始化函数。
2 V) _7 V8 o, {$ q- _DSTATUS disk_initialize () ], N) \8 ^. D
    BYTE drv                /* Physical drive nmuber (0..) */
( l# V3 d9 h2 R% T  d2 F: A)0 U. ~0 y# ?- B4 J  c
{
  T: E% o8 J) T* K# g# V# U3 k. R    u8 state;- V" L* _* e' E$ Y0 [8 ~+ W  a1 ]

8 D1 i$ l. {4 e3 y4 Y! S" j    if(drv)! x+ F& G- P6 k" S: ?# o# w
    {% C% ?; H3 o- Q; O/ m
        return STA_NOINIT;  //仅支持磁盘0的操作
; o$ S1 n1 x9 L. L6 e$ ^; L7 R7 s    }+ @0 j$ H+ n5 _+ d$ Q) E8 _4 E
- L$ }3 x: _: @% {3 s7 r
    state = SD_Init();5 x, U2 ?4 y3 y! ~" D! d
    if(state == STA_NODISK)
) e2 ?  z/ C, i( J, L6 a- t    {; y2 }) v9 W' y6 l
        return STA_NODISK;
& J3 S& f5 \  N, \" m    }/ N! c0 v: Q- ?6 i4 Y9 f9 l% e
    else if(state != 0)( P# ~4 b- Y' E5 g$ p
    {6 s; N+ C; a7 ~- L& Z( ~+ w9 s
        return STA_NOINIT;  //其他错误:初始化失败
( y4 |+ W2 p' @    }$ @: p0 y. T% G! g. {
    else
) t% ~1 |$ |) Z' A/ n: q    {
$ d3 k3 C1 r) X/ q$ _+ h  ^; H        return 0;           //初始化成功
( L% m9 k5 k" R    }
3 V  n8 S% L) T- B1 S/ I, C}
* P1 b7 U( F8 W  
# n% r: D) S# W$ i2 w( }  总之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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版