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

【心得】用传统方法开发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.h
1 M% r. F) F/ Q/ o, G% y6 ]; q3 \俺这里扩充了一个::直接的寄存器文件::- m4 \1 B" X6 E7 @7 z2 ^# Y' j4 h
搞单片机的人更喜欢直接的寄存器控制。
! Q5 C5 Q% X  L, @3 L1 A/*************************************************************
) J3 W4 ^( B( o文件名:  STM32F10X_My_lib.H
# d0 y' X- {( w( l创建日期:2008-12-03 , v$ U3 Z* \6 V: s- F
创建者:  王官辅 3 P2 H1 T2 D* o6 N- B) n7 d
版本:    REV1.0
% R3 y8 e7 ~& _, H  F***************************************************************/
: J" ^7 w' C0 }5 t* F0 Y  r//0x4002 2000 - 0x4002 23FF 闪存存储器接口///////////////////// -- ??
( R0 E* t$ \2 i$ s5 O! c1 v5 ?% r#define  FLASH_ACR      (*(volatile unsigned long *)0x40022000)
9 }4 ^/ f/ ^5 T, ~  o9 u0 W//0x4002 1000 - 0x4002 13FF 复位和时钟控制/////////////////////
; o0 k5 b- N( M8 S#define  RCC_CR         (*(volatile unsigned long *)0x40021000) //时钟控制寄存器 * `/ Z: t4 L* |# {0 A0 o
#define  RCC_CFGR       (*(volatile unsigned long *)0x40021004) //时钟配置寄存器
3 z  u" u  t% K/ t, H) Y#define  RCC_CIR        (*(volatile unsigned long *)0x40021008) //时钟中断寄存器 
# L# ]  w6 h' n- H3 K6 \#define  RCC_APB2RSTR   (*(volatile unsigned long *)0x4002100C) //APB2 外设复位寄存器 * a* e5 l) L! M+ C: S0 c" w
#define  RCC_APB1RSTR   (*(volatile unsigned long *)0x40021010) //APB1 外设复位寄存器 * h: b4 ^( s. k7 I' h( O7 `9 [
#define  RCC_AHBENR     (*(volatile unsigned long *)0x40021014) //AHB外设时钟使能寄存器 ; z2 t6 e' q9 S3 m! v
#define  RCC_APB2ENR    (*(volatile unsigned long *)0x40021018) //APB2 外设时钟使能寄存器   c; D, q+ T# h) d1 ^% O4 c9 h
#define  RCC_APB1ENR    (*(volatile unsigned long *)0x4002101C) //APB1 外设时钟使能寄存器
' A! g% \+ z" K- d4 f#define  RCC_BDCR       (*(volatile unsigned long *)0x40021020) //备份域控制寄存器
" h- W5 w3 q1 c6 B#define  RCC_CSR        (*(volatile unsigned long *)0x40021024) //控制/状态寄存器
) k& P0 h4 Z9 m, Y8 M//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,放弃固件库的使用!

这种方法的也值得研究下. y2 \) v' w8 @2 ~' R8 q; r$ i
不过不使用库的话个人的工作量会比较大啊
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发表:$ c3 Q. Q' L, N% T/ D' r; c$ F! ~+ y0 u
仔细研究了固件库,发现使用的代价,性能损失还是相当的大。
) [! c% ]3 I* w激进点说,速度更快的Cortex-M3在使用了固件库后,将比7S更慢。  f4 Q, y. {2 d" P& V
由于还没有完全研究过固件库的全部代码,不能完全下这个结论,但是从部分情况看,基本上脱不开这个顽疾。
$ ?1 y; w( W5 G' l7 Q- G9 T很想指责这个固件库的开发和设计者,完全丧失了M3内核的优势,浪费太多了。% |) {  ?  ^) b" c3 _& S2 y
我要尝试进行无固件库的开发,这个才是正真的传统开发手段,也许复杂一点,但我相信会很好。1 Q' R' @* I& v( w, d7 `
在此留个贴,慢慢记录无固件库的尝试过程。
' V( S9 |' a% ]) p( }
+ {# o! y+ C/ ~$ D& }; E" CIAR编译器传统的INC目录中包含有两个STM32的头文件
$ ~# [6 o$ X2 v分别是
# }8 d( s8 P9 B5 Miostm32f10xxB.h3 {: P4 ~, |' `) C) o- T
iostm32f10xxE.h
8 s7 T3 u0 ]6 {; Q& h经过对比,E比B的头文件:APB 和 AHB 部分不同,增加了TIM5、6、7、8,UART4、5,ADC3,DMA2,SRAM、NOR,GPIOF,GPIOG,BKP,SPI3,FSMC,SDIO,DAC。# X% K1 B: O$ ?) y, P
! S: D3 u# C& B6 C/ {
也就是说 iostm32f10xxB.h 文件,适用于STM32F10xx6、STM32F10xx8、STM32F10xxB。% g) c+ p" d. F$ }& f1 s, I- ~
而 iostm32f10xxE.h 文件,适用于STM32F10xxC、STM32F10xxD、STM32F10xxE。
: n" h+ a$ @: U, j: x: G9 x# C. a  S9 Y3 z
仔细研究了启动代码部分
! }9 I( A7 |$ @cortexm3_macro.s 文件可以不经修改,包含进项目中。(请有项目管理的ADD加入,不要用include包含)& I; U1 {& [4 p6 H3 H4 j- I. @) P5 _$ ^

& ]' X( r; h" q7 q& J2 d4 I- @为了方便进行中断处理,将/ r8 R* R2 G" Y  A/ V- W1 P
stm32f10x_vector.c
9 Y# {+ D5 `9 T5 a4 F; J$ Ustm32f10x_it.c ! ^7 v( i6 L) e) M) B) _2 s5 o
stm32f10x_it.h
/ E% K0 g# l1 C! t9 i- P2 c: G6 d三个文件进行脱离固件库的修改。然后Include进main文件。
8 l1 y3 Q( Q* v, C
2 @' _& I( ?: U" S) X- O好了,进行main文件的编写吧,已经不需要固件库了,对着 《STM32F10x参考手册》逐个来修改寄存器吧。
$ L  u7 ]; G* O) r- D6 m* K, v: j8 \* t6 ^  ~  _3 K9 v
main.c头部+ i: \) p% d) @& K  m
#include "iostm32f10xxB.h"
3 i; n9 e0 y* F: @#include "stm32f10x_it.c"
6 p1 s* w, f9 x) P#include "stm32f10x_vector.c"
) u, t! R- a- k/ z! v3 X以下附件为开源代码。
3 R" j  z  i2 T7 \$ h& C  {1 |/ w8 m4 b
3 {: ^# L, i8 q3 ?# y, @' O
 
/ U% H& r+ V" B* N
/ o! {/ p' ~5 H8 U3 L% Y  W学习
2 H0 w: F6 n5 u% _! n6 k/ V9 T 

所属标签

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