标签存档: STM32 - 第2页

使用STM32的库和示例工程时需要搞清楚的几个宏定义

1.关于是否使用外设驱动库
USE_STDPERIPH_DRIVER:定义该宏表示使用STM32库的驱动API,在使用时可以在编译器的Preprocessor中定义。

2. 器件类型选择宏
/* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */
/* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */
/* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */
/* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */
/* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */
/* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices */
/* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices */
/* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */
/* Tip: To avoid modifying this file each time you need to switch between these

devices, you can define the device in your toolchain compiler preprocessor.

– Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers
where the Flash memory density ranges between 16 and 32 Kbytes.
– Low-density value line devices are STM32F100xx microcontrollers where the Flash
memory density ranges between 16 and 32 Kbytes.
– Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers
where the Flash memory density ranges between 64 and 128 Kbytes.
– Medium-density value line devices are STM32F100xx microcontrollers where the
Flash memory density ranges between 64 and 128 Kbytes.
– High-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 256 and 512 Kbytes.
– High-density value line devices are STM32F100xx microcontrollers where the
Flash memory density ranges between 256 and 512 Kbytes.
– XL-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 512 and 1024 Kbytes.
– Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.
*/

3.评估板选择宏
STM32100E-EVAL (High-density Value line) evaluation boards ,
STM32100B-EVAL (Medium-density Value line) evaluation boards ,
STM3210C-EVAL (Connectivity line) evaluation boards ,
STM3210E-EVAL (High-density and XL-density) evaluation boards
STM3210B-EVAL (Medium-density) evaluation boards
对应的宏为:USE_STM3210B_EVAL等

STM32系列命名规则

例如:STM32F103C6T7xxx
STM32 – F – 103 – C – 6 – T – 7 – xxx

第1部分:产品系列名,固定为STM32
第2部分:产品类型;F表示这是Flash产品,目前没有其它选项
第3部分:产品子系列;103表示增强型产品,101表示基本型产品
105表示集成一个全速USB 2.0 Host/Device/OTG接口和两个具有先进过滤功能的CAN2.0B控制器,
107表示在STM32F105系列基础增加一个10/100以太
网媒体访问控制器(MAC),互联型产品,
第4部分:管脚数目;
T=36脚; C=48脚; R=64脚;V=100脚; Z=144脚
第5部分:闪存存储器容量:
6=32K字节;8=64K字节;B=128K字节;C=256K字节;D=384K字节;E=512K字节
第6部分:封装信息;
H=BGA;T=LQFP;U=VFQFPN
第7部分:工作温度范围;
6=工业级,-40~+85°C
7=工业级,-40~+105°C
第8部分:可选项;此部分可以没有,可以用于标示内部固件版本号。

 

调通STM32的串口ISP的经验 收藏

一下内容转自阿莫电子论坛 “GoToIsp” 网友的帖子 http://www.amobbs.com/forum.php?mod=viewthread&tid=3395361

总结得很全面

———————————————————-原帖内容如下————————————————————

1、Boot0需接高(注意不要超过3.6V,非5V容忍脚),Boot1(PB2)需接低(电阻下拉或直接接地)。

2、VDDA/VSSA一定要接好,电压符合要求(2.4~3.6V).即使不用ADC也要接,因为VDDA还为POR/OSC/PLL等“模拟”部分供电。

3、检查复位脚的电位是否正常,JTAG仿真器有可能复位系统。

4、检查TXD/RXD信号通路。当然要畅通,呵呵。

5、如果用非mcuisp的软件,最好在TXD/RXD上加上拉电阻到MAX232电源,防止产生干扰信号。mcuisp从软件上处理了这个干扰,可不考虑这点。

6、波特率先设为9600bps或更低,调通读器件ID后再提高到115200。波特率是否能跑高,与PC串口(USB串口线)、MAX232质量有关。

 7:检查RXD通路的方法:用eagleCom打开串口后,点击流控线一页的”<-3V Normal Txd”按钮,可变成“>+3V Break”。如此,可用万用表测量stm32的PA10/UART1_RX,看其电平是否随eagleCom端控制而变化。eagleCom显示”<-3V Normal Txd”时,PC的DB9的3脚应该是负电压,MAX232输出则为高电平;eagleCom显示“>+3V Break”时,PC的DB9的3脚应该是正电压,MAX232输出为低电平。

B:检查TXD通路的方法:eagleCom设置为9600bps,8数据位,Even校验,1StopBit,定时10ms发送0x7F字符(选中\hh HEX转换后输入\7F),此时应该接收到0x79或0x1F。如不通,用万用表测量PA9/UART1_TX–>MAX232–>PC的DB9的2脚,检查那里有问题。

STM32 LD MD HD 分类

一般说STM32单片机的命名都是STM32F103XYZW这样的方式,其中X表示引脚数,Y表示ROM容量,Z表示封装方式,W表示工作温度范围,比如RBT6表示为64引脚、128KB和LQFP封装,工业温度范围。
针对ROM容量的字符,表示的容量是:
6-32KB
8-64KB
B-128KB
C-256KB
D-384KB
E-512KB
F-768KB
G-1024KB
其中:
ROM容量为16~32K就是LD
64K~128K的就是MD
256~512K的就是HD

本文转自:http://blog.csdn.net/hitxiaya/article/details/7440496

使用RealViewMDK时常见的问题(1) 转

作者:赵明,华清远见嵌入式学院讲师

目前在市场上最常用的ARM编程工具无非是Real View MDK和IAR Embedded Workbench。

我个人觉得,目前IAR是比较成熟、稳定、使用方便等优点,深受广大嵌入式开发者的喜爱。Real view MDK得到ARM公司的大力支持,功能很强,也逐步完善起来。

使用Real view(以下省略为RV)学习ARM指令的时候,初学者在调试过程中,经常会遇到类似于如下的错误消息。

Error 65:access violation at 0xFFFFFFFC: no “write” permission

这个错误一般在使用RV模拟器(使用’debug’的’Use simulator’模式)进行调试时出现。 继续阅读 »

STM32的FLASH操作介绍与总结

说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。当然, FLASH还可以用来装数据。

FLASH分类

根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。

主存储块用于存储程序,我们写的程序一般存储在这里。

信息块又分成两部分:系统存储器、选项字节。

系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入BootLoader,然后锁死,用户是无法改变这个区域的。

选项字节存储芯片的配置信息及对主存储块的保护信息。

FLASH的页面

STM32的FLASH主存储块按页组织,有的产品每页1KB,有的产品每页2KB。页面典型的用途就是用于按页擦除FLASH。从这点来看,页面有点像通用FLASH的扇区。

STM32产品的分类

STM32根据FLASH主存储块容量、页面的不同,系统存储器的不同,分为小容量、中容量、大容量、互联型,共四类产品。

小容量产品主存储块1-32KB,每页1KB。系统存储器2KB。

中容量产品主存储块64-128KB,每页1KB。系统存储器2KB。

大容量产品主存储块256KB以上,每页2KB。系统存储器2KB。

互联型产品主存储块256KB以上,每页2KB。系统存储器18KB。

对于具体一个产品属于哪类,可以查数据手册,或根据以下简单的规则进行区分:

STM32F101xx、STM32F102xx 、STM32F103xx产品,根据其主存储块容量,一定是小容量、中容量、大容量产品中的一种,STM32F105xx、STM32F107xx是互联型产品。

互联型产品与其它三类的不同之处就是BootLoader的不同,小中大容量产品的BootLoader只有2KB,只能通过USART1进行ISP,而互联型产品的BootLoader有18KB,能通过USAT1、4、CAN等多种方式进行ISP。小空量产品、中容量产品的BootLoader与大容量产品相同。 继续阅读 »

关于STM32使用RTC时复位后程序死在 RTC_WaitForSynchro() 函数中的问题

出现的现象:使用野火的RTC例程,在软件仿真时如果不需要配置,则程序会死在 RTC_WaitForSynchro() 函数中。而下载到硬件上时,有时候可以跑,有时候也会在该函数中死循环。

可能的原因:
首先,一定要确认是否使能了对后备寄存器和RTC的访问。
系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操
作。执行以下操作将使能对后备寄存器和RTC的访问: 继续阅读 »

STM32F103系列命名规则

对于STM32F103xxyy系列:
第一个x代表引脚数:T-36pin,C-48pin,R-64pin,V-100pin,Z-144pin;
第二个x代表Flash容量:6-32K,8-64K,B-128K,C-256K,D-384K,E-512K;
第一个y代表封装:H-BGA封装,T-LQFP封装,U-QFN封装;
第二个一代表工作稳定范围:6代表-40到85摄氏度,7代表-40到105摄氏度。