硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3056|回复: 3
收起左侧

[MDK] 请教关于官方标准库中STM32F10X_MD和STM32F10X_MD_VL的问题

[复制链接]

3

主题

39

回帖

48

积分

新手上路

积分
48
QQ
发表于 2017-6-19 22:16:08 | 显示全部楼层 |阅读模式
大家好,我现在使用的芯片型号是STM32F103RBT6,使用了官方3.5版标准库STM32F10x_StdPeriph_Lib_V3.5.0,开发环境为MDK 5.23,配备的芯片软件包版本为Keil.STM32F1xx_DFP.2.2.0,选用了startup_stm32f10x_md_vl.s启动文件。


现在的问题我遇到的问题是有如下几点:
1.STM32F103RBT6对应的是STM32F10X_MD还是STM32F10X_MD_VL类型呢?若是对应STM32F10X_MD类型,则在stm32f10x.h文件中并没有定义TIM6和TIM7的定时器中断号,而STM32F10X_MD_VL类型则有TIM6和TIM7的中断号

2.针对我所选用的STM32F103RBT6这款IC,因为我已经使用了芯片软件包版本为Keil.STM32F1xx_DFP.2.2.0,所以我不能在”Options for Target / C/C++ / preprocessor symbols"下面再定义STM32F10X_MD或STM32F10X_MD_VL宏。(如果定义的话会报#67错误),我试过当我选定STM32F103RBT6芯片时编译器默认我已经#define STM32F10X_MD,而我需要得效果是#define STM32F10X_MD_VL

希望之前遇到过类似问题的大侠能伸出友爱之手,帮忙解答一下,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107262
QQ
发表于 2017-6-20 02:13:32 | 显示全部楼层
F1系列这块搞的真心乱。
这个是F1系列的划分:http://www.st.com/en/microcontro ... ia=productId=SS1031

STM32F100 Value line  – 24 MHz CPU with motor control and CEC functions
STM32F101 – 36 MHz CPU, up to 1 Mbyte of Flash
STM32F102 – 48 MHz CPU with USB FS
STM32F103 – 72 MHz, up to 1 Mbyte of Flash with motor control, USB and CAN
STM32F105/107 – 72 MHz CPU with Ethernet MAC, CAN and USB 2.0 OTG
=====================
VL是超值型,即STM32F100系列。
CL是互联型,即STM32F105/107
XL是超大容量。
HD是大容量。
MD是中等容量。
LD是小容量。
具体容量大小如下:

Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx
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.
High-density devices are STM32F101xx and STM32F103xx 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 768 Kbytes and 1 Mbyte.
Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.

剩下使用那个启动文件就很好理解了:
QQ截图20170620021434.png
回复

使用道具 举报

3

主题

39

回帖

48

积分

新手上路

积分
48
QQ
 楼主| 发表于 2017-6-26 20:46:00 | 显示全部楼层
非常感谢坛主的回复。
我已经找到问题的原因了,是因为STM32F103RBT6这款芯片没有TIM6/TIM7,所以在startup_stm32f10x_md.s这个文件中是没有这两个定时器的中断入口地址定义。如果使用STM32F103RBT6这款芯片,使用STM32F10X_MD这个宏定义是没有错误的。而使用了Keil.STM32F1xx_DFP.2.2.0这个软件包是不需要在Preprocessor Symbols选项里面再预定义宏STM32F10X_MD,如果在那里填写了STM32F10X_MD会报错。差点把论坛里面的一位前辈带到沟里面去了。[s:123] [s:123] [s:123]
很感谢论坛里的那位前辈介绍了安富莱的网站,坛主很热心基本上都是有问必答。[s:130] [s:130] [s:130]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107262
QQ
发表于 2017-6-27 09:30:13 | 显示全部楼层

回 今晚打老虎 的帖子

今晚打老虎:非常感谢坛主的回复。
我已经找到问题的原因了,是因为STM32F103RBT6这款芯片没有TIM6/TIM7,所以在startup_stm32f10x_md.s这个文件中是没有这两个定时器的中断入口地址定义。如果使用STM32F103RBT6这款芯片,使用STM32F10X_MD这个宏定义是没有错误的。而使用了Keil.STM32F1xx_DFP .. (2017-06-26 20:46) 
[s:130]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-23 15:27 , Processed in 0.200249 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表