自学stm32头疼的几天

[复制链接]
11020|33
 楼主| lycstronger 发表于 2011-11-10 12:16 | 显示全部楼层 |阅读模式
在学习STM3210x建工程时发现不行,缺少什么东西,后来发现好像要固件库,可是我下载的固件库和视频教程中的不一样,我就郁闷了,卡死在这里了。建库方法是和振南电子里讲的一样,但是我下载的库不一样,谁能提供一个一样的库,或者说怎么移植库到IAR中 这是我[local]1[/local]下载的有需要的可以自己拿走。如果有人会的看到了此贴麻烦指点一下
yinyangdianzi 发表于 2011-11-10 12:35 | 显示全部楼层
抓基础,,看官方的资料
jyz0025338 发表于 2011-11-10 15:49 | 显示全部楼层
看到个比较好的建工程的文档,共享下

v3.4固件库 使用.rar

18.25 MB, 下载次数: 883

dfsa 发表于 2011-11-10 19:00 | 显示全部楼层
楼主的学习思路需要转换一下
火箭球迷 发表于 2011-11-10 22:51 | 显示全部楼层
刚开始学习时也和楼主一样按教程一步一步来,稍微变化就不知道咋办了,得换个思路
陈永宾0 发表于 2011-11-11 08:50 | 显示全部楼层
hold 住
jobszheng 发表于 2011-11-13 20:28 | 显示全部楼层
现在STM32的固件库已经到了3.5版本。好几天了,才搞定。累啊~~
hsbjb 发表于 2011-11-14 17:53 | 显示全部楼层
刚开始是有个迷茫的过程
xxl88 发表于 2011-11-14 19:26 | 显示全部楼层
慢慢来
火箭球迷 发表于 2011-11-14 22:41 | 显示全部楼层
多讨论讨论就不头疼了
zhaoweige 发表于 2011-11-14 22:49 | 显示全部楼层
以下是我用FLlibV3.1建工程遇到的一些问题,希望对你有用

在IAR下新建工程文件后,第一次编译会出现些警告,应为stm32f10x_conf.h的缘故
有的人在未包含stm32f10x_conf.h的所有C文件中包含一遍,通过编译
有的人在工程文件的option 选项中C/C++ Compiler 中的Preprocessor选项中预定义USE_STDPERIPH_DRIVER,编译通过
其实这个USE_STDPERIPH_DRIVER在stm32f10x.h中有定义的,定义如下:
#if !defined  USE_STDPERIPH_DRIVER
  /*#define USE_STDPERIPH_DRIVER*/
#endif
所以如果用到ST的库函数,需要把这里打开

当然stm32f10x_conf.h,在main.c文件以及其他文件中找不到,为什么编译通过了呢
问题任然在stm32f10x.h,其实它包含了stm32f10x_conf.h,源程序如下:
#ifdef USE_STDPERIPH_DRIVER
  #include "stm32f10x_conf.h"
#endif

所以新建工程文件时关于stm32f10x_conf.h的问题,只需在stm32f10x.h中打开就OK了



第一次自己建工程文件时,可能会报:
Error[Li006]: duplicate definitions for "__vector_table"
那是启动代码文件重复,有四个或更多启动代码文件在FWLib的CMSIS中,如:
startup_stm32f10x_cl.s
startup_stm32f10x_hd.s
startup_stm32f10x_ld.s
startup_stm32f10x_md.s
根据自己stm32的型号选择相应的就OK,我的是STM32F107,所以选startup_stm32f10x_cl.s
不要的不用包含进来,移除掉也可以,或则在相应文件上右键单击选option,选中exclude,就OK

其余的设置按那些教程配置IAR就OK了



在system_stm32f10x.c中需要完成时钟配置,STM32F107最高时钟72M,所以设置如下:
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL)
/* #define SYSCLK_FREQ_HSE    HSE_Value */
#define SYSCLK_FREQ_24MHz  24000000
#else
/* #define SYSCLK_FREQ_HSE    HSE_Value */
/* #define SYSCLK_FREQ_24MHz  24000000 */
/* #define SYSCLK_FREQ_36MHz  36000000 */
/* #define SYSCLK_FREQ_48MHz  48000000 */
/* #define SYSCLK_FREQ_56MHz  56000000 */
#define SYSCLK_FREQ_72MHz  72000000
#endif
fanwei326 发表于 2011-11-15 17:07 | 显示全部楼层
多讨论讨论就不头疼了
dfsa 发表于 2011-11-15 18:19 | 显示全部楼层
自学头疼了,就该找个人讨论了,会豁然开朗的
无冕之王 发表于 2011-11-15 23:41 | 显示全部楼层
很多人都经历过这个阶段
candylakers 发表于 2011-11-16 14:28 | 显示全部楼层
喜欢远行
xsgy123 发表于 2011-11-16 19:14 | 显示全部楼层
现在学LINUX和楼主有相似的感觉
txcy 发表于 2011-11-16 23:01 | 显示全部楼层
头疼的阶段是必须经历的:lol
sinadz 发表于 2011-11-17 18:02 | 显示全部楼层
楼主这个学习还只停留在表面
无冕之王 发表于 2011-11-17 22:52 | 显示全部楼层
把头疼的问题里出来,多讨论就好了
 楼主| lycstronger 发表于 2011-11-22 16:21 | 显示全部楼层
就是啊 学习的过程就像小孩成长的过程,这少对与我来说是这样的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

25

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部