历史上的今天
今天是:2024年12月29日(星期日)
2018年12月29日 | STM32F030和STM32F103的IO结构上的区别
2018-12-29 来源:eefocus
STM32F103GPIO 功能描述
每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。
根据数据手册中列出的每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置成多种模式。
─ 输入浮空
─ 输入上拉
─ 输入下拉
─ 模拟输入
─ 开漏输出
─ 推挽式输出
─ 推挽式复用功能
─ 开漏复用功能
每个I/O端口位可以自由编程,然而必须按照32位字访问I/O端口寄存器(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器进行读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。
下图给出了一个I/O端口位的基本结构。
图13 I/O端口位的基本结构

STM32F030 GPIO functional description
Subject to the specific hardware characteristics of each I/O port listed in the datasheet, each
port bit of the general-purpose I/O (GPIO) ports can be individually configured by software in
several modes:
• Input floating
• Input pull-up
• Input-pull-down
• Analog
• Output open-drain with pull-up or pull-down capability
• Output push-pull with pull-up or pull-down capability
• Alternate function push-pull with pull-up or pull-down capability
• Alternate function open-drain with pull-up or pull-down capability
Each I/O port bit is freely programmable, however the I/O port registers have to be
accessed as 32-bit words, half-words or bytes. The purpose of the GPIOx_BSRR and
GPIOx_BRR registers is to allow atomic read/modify accesses to any of the GPIOx_ODR
Figure 13. Basic structure of a standard I/O port bit

二者区别:
以上中文部分为103系列,英文部分为030系列。两个系列从基本结构图上可以看到最大的差异就是上拉下拉电阻的位置有区别。
103系列的上下拉只在输入通道有效,030系列的在输入和输出都有效,因此030系列在浮空输出时也可以使用上下拉电阻,在103系列单片机中浮空输出是不能使用上下拉的,必须使用外部电阻辅助。
这两个IO的结构区别对实际使用有哪些影响呢?最大的区别就是IO作为双向IO使用时,设置为浮空输出,103系列必须外面配置上拉电阻,而030系列则可以直接配置为上拉开漏输出,把IO口作为双向IO使用,特别是在模拟IIC时序中使用最方便!
史海拾趣
|
之前介绍过如何创建一个基本的Windows CE的平台,现在咱就上一次没有提到的部分进行一下补充定制并build OS。 首先,在VS2005 IDE中的View -> Other Windows -> Catalog Items中,添加或者删除相应的模块来完成OS定制,选项如下: 然后配置buil ...… 查看全部问答> |
|
本帖最后由 辛昕 于 2018-4-8 22:59 编辑 关于这个东西,我后来其实从来没捡起过。 但是,也就没有必要惦记着了。 当然了,每次说到这个东西,都会想起,故人已去~ 在做运放的过程中,知道了一个叫做模拟乘法器的东西。 但是想上网看看这个东 ...… 查看全部问答> |
|
昨晚给师弟讲课的内容,利用stc的一款单片机提供的pwm实现变频输出。程序将变频pwm输出到led上作测试。 #include sfr CCON = 0xD8; sfr CMOD = 0xD9; sfr CL &nb ...… 查看全部问答> |
|
S3c2410 LCD nand flash 裸机 程序怎么写? 大家好 我也是刚接触Arm9 这几天在学S3c2410裸机程序 现在遇到一个问题: 从ADS1.2下借鉴过来的代码,通过arm-linux- 工具编译,然后通过Jflash-s3c2410 下载到nand flash ,但运行起来 LCD 始终不是希望的效果。 我把我的 ...… 查看全部问答> |
|
小弟最近要在ixp2350上做开发,板子是个叫ADI Engineering的公司的,无奈我按照说明书上将串口线和网线连号,接上电源,然后用minicom和hyper terminal 都试过,就是没反应…… 说明书上也没有说要别的什么设置啊~~ 有朋友做过这方面的东东没?? ...… 查看全部问答> |




