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

【心得】用传统方法开发STM32,放弃固件库的使用!

[复制链接]
ST老少女 发布时间:2008-12-2 14:40
阅读主题, 点击返回1楼
收藏 评论1459 发布时间:2008-12-2 14:40
1459个回答
caosix 回答时间:2009-12-20 10:19:30

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

谢谢楼主,,,俺就需要这个!!__不过还是:::不会使用楼主的iostm32f10xx.h4 D7 v8 o# W& Z: v: @
俺这里扩充了一个::直接的寄存器文件::
* h( J0 z2 Y6 |  i  H* I' [搞单片机的人更喜欢直接的寄存器控制。
; B9 q9 u6 g( r! h# O  R/*************************************************************
- v! m, c- ]6 V5 n8 ]9 A文件名:  STM32F10X_My_lib.H $ o2 v' t+ W( Q; b
创建日期:2008-12-03
0 }1 m8 x- b  p8 I1 T: V: Y3 {创建者:  王官辅 : y& G* F6 g# L4 c- D0 Z) C
版本:    REV1.0 5 E# {3 m, z+ Z( [) u
***************************************************************/
$ p! B" @( K- Z. K, x/ U0 A//0x4002 2000 - 0x4002 23FF 闪存存储器接口///////////////////// -- ??5 ]% R$ c7 W) o1 @# N: n$ [/ n9 I' A
#define  FLASH_ACR      (*(volatile unsigned long *)0x40022000)
6 z: H2 u& B" v//0x4002 1000 - 0x4002 13FF 复位和时钟控制/////////////////////
- \+ w" U" D+ Q8 Y#define  RCC_CR         (*(volatile unsigned long *)0x40021000) //时钟控制寄存器
% I1 l( Q3 F% ]! V2 ?#define  RCC_CFGR       (*(volatile unsigned long *)0x40021004) //时钟配置寄存器 3 Y" C. q& V8 M& M1 v  |/ j! n
#define  RCC_CIR        (*(volatile unsigned long *)0x40021008) //时钟中断寄存器 
4 k9 G" {5 A3 n) o1 X#define  RCC_APB2RSTR   (*(volatile unsigned long *)0x4002100C) //APB2 外设复位寄存器
( v8 \% ?( n6 A' Y" A+ h#define  RCC_APB1RSTR   (*(volatile unsigned long *)0x40021010) //APB1 外设复位寄存器 , g1 T3 p! X6 @
#define  RCC_AHBENR     (*(volatile unsigned long *)0x40021014) //AHB外设时钟使能寄存器 " r  p) ]9 A- ^. `/ t3 H5 T9 ~
#define  RCC_APB2ENR    (*(volatile unsigned long *)0x40021018) //APB2 外设时钟使能寄存器
. c) f7 N1 Z2 O) T/ q#define  RCC_APB1ENR    (*(volatile unsigned long *)0x4002101C) //APB1 外设时钟使能寄存器
4 L; S* D/ ?7 i' k( Y#define  RCC_BDCR       (*(volatile unsigned long *)0x40021020) //备份域控制寄存器
% `% m3 D9 ]# q+ N3 }2 _3 M#define  RCC_CSR        (*(volatile unsigned long *)0x40021024) //控制/状态寄存器
! j7 z" S, a% J% Q2 X//0x4002 0000 - 0x4002 03FF DMA//////////////////////////////// 下载全文件吧。。。

Stm32F103.h.txt

下载

30.16 KB, 下载次数: 8

whhc 回答时间:2009-12-22 00:50:06

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

很好的思路
microtiger 回答时间:2009-12-22 10:42:05

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

这种方法的也值得研究下- d- T) r" e+ ^; a5 w+ t' w
不过不使用库的话个人的工作量会比较大啊
laichengyi 回答时间:2009-12-23 13:51:17

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

如果你要求计算速度快,那就自己做,如果没什么要求,用固件方便
ThuaCN 回答时间:2009-12-25 16:34:15

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

 下来看看,谢谢...
wfq2008 回答时间:2009-12-29 09:26:46

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

刚开始认识   看看
qingtian2009 回答时间:2009-12-29 23:01:38

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

下来看看 学习学习啊 谢谢楼主
xianshenghe 回答时间:2009-12-30 15:37:42

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

我也准备放弃固件库
czy840620 回答时间:2009-12-31 10:54:57

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

学习学习 菜鸟刚接触stm32,大家以后多多指教
zqm2050ox 回答时间:2010-1-1 00:47:27

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

学学
king2009 回答时间:2010-1-2 18:05:45

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

学习学习 !!!!!!!!!!!!
zzz80675@sohu.c 回答时间:2010-1-4 16:50:24

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

学习学习
zzz80675@sohu.c 回答时间:2010-1-4 16:51:42

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

学习学习
bonsens 回答时间:2010-1-6 19:13:25

RE:【心得】用传统方法开发STM32,放弃固件库的使用!

我也正在做这方面的学习
416561760 回答时间:2010-1-7 11:06:14

回复:【心得】用传统方法开发STM32,放弃固件库的使用!

回复第 1 楼 ST老少女于2008-12-02 06:40:59发表:" R8 o0 }/ \+ ?; E2 i
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。' x- d6 L9 Z5 f0 y4 m! \7 _0 e
激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。
/ K- G6 @* h1 _# _; B8 ?由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。6 i0 l, \9 k7 V, [
很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。
! Q# K8 f* ~1 z. X我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。8 o+ u' J7 Z: m4 W6 [3 D# {
在此留个贴,慢慢记录无固件库的尝试过程。
# }. @1 e3 O5 ~+ K. F- e
* ^% K3 s# t" F% PIAR编译器传统的INC目录中包含有两个STM32的头文件
# k3 `# \5 a: `; J0 }: t分别是
4 n6 i! ?  `. ?! @( k' U% U0 U& X* Riostm32f10xxB.h
( @0 a" z" g# |+ |3 wiostm32f10xxE.h
4 V8 M* ^2 d1 @9 t% l8 ~. l经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。+ s7 x. ]' i6 d$ ~9 o5 ?

; b$ W: i6 a% x, l也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。
. m- |5 w* H3 i5 b* S. Q$ E! U而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
/ ?" [+ p* r3 E( n. V8 q3 b9 o6 G) c- N
仔细研究了启动代码部分
$ a# s# Q5 m5 g. `' q" R# ~cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)% R; j2 K" E- r  F  a1 Y! F; t
, W2 t3 h7 t! P4 ]- t: F+ W
为了方便进行中断处理,将
2 `& D% D: D) K2 d; O6 E+ m2 F: _5 xstm32f10x_vector.c
' }: y; v# u& m& estm32f10x_it.c
( x: X. J! v3 [+ D2 `stm32f10x_it.h
. `0 n9 K2 ^1 X0 i5 j: s三个文件进行脱离固件库的修改。然后Include进main文件。1 E' B1 {7 R3 R: D& b4 d9 k" J
" y8 l, m5 G' ]' V. h* E" [
好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。7 T8 l. [( k+ l! w  `  @' K

2 z% x5 Y' H8 T; e1 U8 q+ omain.c头部
- c" b2 O# I3 ]* Q# c#include "iostm32f10xxB.h"
0 @# c- ]3 \7 I6 R2 U6 U5 y#include "stm32f10x_it.c"- w: @5 u! T" V7 e4 _
#include "stm32f10x_vector.c"2 y$ }4 a9 r7 F  g- Y) F3 I1 L6 w
以下附件为开源代码。
, g; W7 {; k' k7 c; c, B
4 h# n! Q( R& U1 U# X( b
3 ~1 ]& G7 A/ M3 |& Y 6 X: f% o1 z& K7 S6 i
5 R' b, {# g3 x" ~+ D% k7 _' a1 [
学习3 C1 @' f7 ~6 a: e
 

所属标签

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