笔记3:STM32F103与STM32F030的区别
在替换芯片时,发现STM32f103与STM32F030的区别:
内部结构
下图是103的IO口内部结构:
下图是030的IO口内部结构图:
通过上面的比较可以看出:
两个系列从基本结构图上可以看到最大的差异就是上拉下拉电阻的位置有区别。
103 系列的上下拉只在输入通道有效, 030 系列的在输入和输出都有效,因此 030 系列在浮空输出时也可以使用上下拉电阻,在 103 系列单片机中浮空输出是不能使用上下拉的,必须使用外部电阻辅助。
这两个IO 的结构区别对实际使用有哪些影响呢?最大的区别就是 IO 作为双向 IO 使用时,设置为浮空输出, 103 系列必须外面配置上拉电阻,而 030 系列则可以直接配置为上拉开漏输出,把 IO 口作为双向 IO 使用,特别是在模拟 IIC 时序中使用最方便!
————————————————
参考链接:https://blog.csdn.net/L18780079219/article/details/80551336
在配置到MISO的管脚时也会有不同
STM32F103:
/**SPI1 GPIO Configuration
PA5 ------> SPI1_SCK
PA6 ------> SPI1_MISO
PA7 ------> SPI1_MOSI
*/
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);GPIO_InitStruct.Pin = GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
STM32F030:
/**SPI1 GPIO Configuration
PA5 ------> SPI1_SCK
PA6 ------> SPI1_MISO
PA7 ------> SPI1_MOSI
*/
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF0_SPI1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
————————————————
参考链接:https://blog.csdn.net/yule/article/details/102755151
具体区别就是: F103的MISO要配置成输入(GPIO_MODE_INPUT), 而F030的要配置成复用(GPIO_MODE_AF_PP)。
ADC的区别:
STM32F1031有选择单通道和双通道,而STM32F030没有。
随笔随记于即日
笔记3:STM32F103与STM32F030的区别相关推荐
- VC++学习笔记(BITMAP与CBitmap的区别)
VC++学习笔记(BITMAP与CBitmap的区别) BITMAP是一个结构,保存了一些位图的信息: CBitmap是个类,用法:CBitmap bitmap;//创建对象 bitmap.LoadB ...
- ASP.Net学习笔记003--网站和WebApplication的区别
以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交流qq2群:170933152 也可以自己下载: ASP.Net学习 ...
- OC语言篇—学习笔记1—C和OC的区别
学习笔记1-C和OC的区别 1.文件的后缀名 OC:类的头文件 .h,类的实现文件 .m C:类的头文件 .h,类的实现文件.c 2.导入头文件方式 C语言使用include导入头文件,如果想多次引用 ...
- 学习笔记-nil NULL NSNull Nil的区别
nil--表示实例对象为空 例如 NSString * string = nil; NSArray * arr ...
- (JAVA学习笔记) 关于i++和++i的区别
关于i++和++i的区别 首先看下面一串代码: int i=0;int a = i++;System.out.println("a="+a);System.out.println( ...
- jQuery学习笔记:attr()与prop()的区别
先看看官方文档是如何解释两者之间功能差异的: attr() Get the value of an attribute for the first element in the set of matc ...
- C++笔记——.和::和:和-的区别
在学习C++的过程中我们经常会用到.和::和:和->,在此整理一下这些常用符号的区别. 1.A.B则A为对象或者结构体:2.A->B则A为指针,->是成员提取,A->B是提取A ...
- java onkeydown_java笔记 js onkeypress与onkeydown 事件区别详细说明
onkeypress 和 onkeydown 是有区别,下面将讲解 onkeypress 与 onkeydown 事件的区别. onkeypress 事件在用户按下并放开任何字母数字键时发生.但是系统 ...
- 目标检测学习笔记-3D摄像头与 2D摄像头区别
1. 2D&3D 的定义 首先2D,3D 的D 是什么意思?D 全称是Dimensional,翻译中文为维度.中文解译2D,3D 为二维,三维. 2. 2D 和3D 区别 如果从数学,物理角度 ...
- JS高级笔记:CommonJs与ESModule的区别
区别: 两者的模块导入导出语法不同,CommonJs是通过module.exports,exports导出,require导入:ESModule则是export导出,import导入. CommonJ ...
最新文章
- Android开发常用开源框架:图片处理
- C++模拟实现Objective-C协议和代理模式
- js DOM——JS学习笔记2015-7-2(第73天)
- 谷歌驱动和谷歌版本必须一一对应吗_谷歌:华为别用我的安卓系统!自己研发一个去...
- iOS知识点,iOS开发笔记
- SQLyog v12.09 (64 bit) 注册码
- 欧姆龙plc学习笔记(六)(从cx-one上传程序到欧姆龙plc)
- Matlab RRT算法三维轨迹规划及贪心算法轨迹优化
- oracle系统的物料编码,关于标准form 物料编码查询 不通过lov
- XRD 数据处理:使用 Origin 进行多谱图对比
- PHP小白编程学习——第三方登录功能设计思维
- 分析电脑控制的丹佛机场行李系统
- 【历史上的今天】12 月 16 日:晶体管问世;IBM 停售 OS/2;科幻小说巨匠诞生
- c语言写一个简单的小游戏-推箱子
- MQTT协议之Mosquitto
- pandas 第十二期组队-pandas基础
- 使用 Microsoft Teams 开会到底有多少途径——建会
- 同方服务器系统安装,安徽远教清华同方服务器安装流程
- 【Stata】从入门到精通.零基础小白必学的教程,一学就fei
- array方法之from方法