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

新手STM32学习笔记

[复制链接]
私奔 发布时间:2009-1-4 12:05
作者:阿九
% }! A9 T7 P* m# S3 r上周4终于买了块万利的STM32开发板,武汉本地的万利代理处买的,之前问了好久都没货,这次终于有了:)199还开了发票,尽管老板是分不愿意,没利润阿,再开个票亏了。。。
( `+ r/ J! V9 ]8 E代码我做了颜色高亮,看起来很舒服:) ) n1 g( V" D4 b+ I
咱也就初学者水平,目前对STM32还处在学习各种模块的阶段,so,高手们请多多指点,别介意小弟啰嗦把这点P东西都放网上~~
9 y) s/ Y8 H( x学这高级单片机,是想过几天把它用到雕刻机的控制上,解释下G代码呀,插补个圆弧直线啥的,顺便还和PLC通讯通讯:) ; l1 L9 `* d( q# @) B

& o2 U% C- g6 D, fSTM32笔记(零)我的STM32工程模板
4 ~6 h% s2 I1 x# `! w
9 d/ c. v, Q7 Q' P8 o3 ]  这是我自己的STM32工程模板,其实和网上所有的都一样,其中包括IAR和MDK两个文件,各自包含FWLib2.0,解压缩后修改文件名即可使用。 * P+ U: k! z4 Y( m" s4 J9 t& y, j6 m
  用法同网上的其他文件一致,用户代码在user文件夹下,main.c和stm32f10x_it.c ( M9 \0 D5 X# j* O7 n
  传一份上来供大家使用:)
( ?2 S5 s7 _* O5 D4 G8 T( J 其中底层的SPI总线对SD卡的操作在SPI_SD_driver.c/h中,而FATFS的移植文件diskio.c中对磁盘的操作函数中将调用底层的操作函数。下面是一些底层操作函数:
# o" [5 H7 K" ?% ~$ [u8 SPI_ReadWriteByte(u8 TxData);                                             //SPI总线读写一个字节
( R3 B) r# J3 `2 J+ G( T+ q4 o6 ^$ cu8 SD_WaitReady(void);                                                           //等待SD卡就绪9 m$ p3 m6 I) U2 J! _+ _
u8 SD_SendCommand(u8 cmd, u32 arg, u8 crc);                      //SD卡发送一个命令
& j; m" j$ X2 v( }5 J9 N9 uu8 SD_SendCommand_NoDeassert(u8 cmd, u32 arg, u8 crc);  //SD卡发送一个命令,不断线5 N# S8 S% w* o$ B" ~: L* o5 |
u8 SD_Init(void);                                                                      //SD卡初始化
+ L" v1 o& `2 ~3 E/ Z+ {                                 
* j5 x6 D, P6 g, t; _' ~, Ru8 SD_ReceiveData(u8 *data, u16 len, u8 release);                   //SD卡读数据0 q9 h6 K7 D; _/ z4 s. t
u8 SD_GetCID(u8 *cid_data);                                                   //读SD卡CID
0 V, s6 B1 a. R3 |8 d! ?' h5 Vu8 SD_GetCSD(u8 *csd_data);                                                 //读SD卡CSD
1 t+ s) W4 N1 ^( w: X- cu32 SD_GetCapacity(void);                                                     //取SD卡容量' M6 K7 ]0 I4 r

3 x" V8 |3 R6 Zu8 SD_ReadSingleBlock(u32 sector, u8 *buffer);                      //读一个sector7 f! s4 w" c( ?, P4 J/ p* ]
u8 SD_WriteSingleBlock(u32 sector, const u8 *buffer);           //写一个sector
0 v# L4 R- U, z, ?u8 SD_ReadMultiBlock(u32 sector, u8 *buffer, u8 count);       //读多个sector9 w  b; M% N7 E: t
u8 SD_WriteMultiBlock(u32 sector, const u8 *data, u8 count);  //写多个sector
2 O1 G' `2 f% \9 \0 }/ l, s( n: w8 w. }% J# y1 U/ ~: P+ M, i
  这是diskio.c中的一段代码,在disk初始化中,我们调用了SPI_SD_driver.c中的SD卡初始化函数。
  Y: W, k, X; L5 s$ V- t, P" L* YDSTATUS disk_initialize (" }0 y5 c0 w5 c2 v# n0 Z6 h7 o
    BYTE drv                /* Physical drive nmuber (0..) */
" G2 a  u4 p3 G+ G)
: ~& H; T) k/ v7 a{
. d# a  X  g- J3 X! @6 N4 E/ b2 E    u8 state;
) A* v0 O! Z' f5 e4 D8 i
2 z0 L/ z0 ?) P2 C3 Y1 _6 h' x: Q    if(drv)# q5 W& w. ?1 K+ d6 u5 b# z0 }
    {
" k/ ]( [- Z, p; J1 o        return STA_NOINIT;  //仅支持磁盘0的操作! L% X/ O/ h4 C: d! R7 N+ q
    }( |7 ~; ~- ^7 p0 G! e8 Z& `' U

. d, _6 x' |9 j    state = SD_Init();2 w6 }- {' c. Z1 q2 I
    if(state == STA_NODISK)
4 ^# H' K% U  e; @) b* o    {
# z) |/ l% @; Z        return STA_NODISK;& C0 E: S& o9 U  s6 h, g: X
    }$ d! ~, {) @1 w2 r
    else if(state != 0)
$ A0 [) _% m/ Z' _4 ~# l3 v    {
, V3 d; m8 s- @1 d9 I: M        return STA_NOINIT;  //其他错误:初始化失败- S6 ~- H8 b7 m/ M: x; i* k1 t
    }
1 Q6 Z* _7 v6 N: M* D0 [- s, x    else% Y; r$ i! ^1 ~- a
    {0 U/ [; I& a; d9 c/ U
        return 0;           //初始化成功% e8 c' u, b) D4 e  A0 B
    }! V9 w. A$ X3 U5 \( _( c: C
}
7 H3 Q; L, b! i6 y& o' |  ! j9 x' ?" g9 A1 ~* 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 手机版