0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HK32MCU应用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项

jf_pJlTbmA9 来源:航顺芯片 作者:航顺芯片 2023-09-18 10:58 次阅读

HK32F103x/C/D/E是航顺芯片推出的中大容量的103系列芯片,而作为32位MCU最常用功能就是GPIO。HK32F103x的每个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时不会发生危险。每个GPIO管脚都可以由软件配置成输出(推拉或开路)、输入(带或不带上拉或下拉)或其它的外设功能端口。多数 GPIO 管脚都与数字或模拟的外设共用。所有的 GPIO 管脚都有大电流通过能力。在需要的情况下,I/O 管脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入 I/O 寄存器。

下图就是I/O 端口位的基本结构:

wKgZomUD66KAJZR6AAJgQi9brtw376.png

5伏兼容 I/O 端口位的基本结构

wKgaomUD66SAHGXvAAJekPeb_O4112.png

注意:VDD_FT 对5伏容忍I/O脚是特殊的,它与VDD不同

端口位配置表

wKgaomUD66WAMjjnAAFF94ESWMI754.png

输出模式位

wKgZomUD66eAY9IMAACCDdzD3S0678.png

单独的位设置或位清除

当对GPIOx_ODR的个别位编程时,软件不需要禁止中断:在单次APB2写操作里,可以只更改一个或多个位。这是通过对“置位/复位寄存器”(GPIOx_BSRR,复位是 GPIOx_BRR)中想要更改的位写’1’来实现的。没被选择的位将不被更改。

复用功能(AF)

使用默认复用功能前必须对端口位配置寄存器编程。

● 对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入引脚必须由外部驱动

注意:也可以通过软件来模拟复用功能输入引脚,这种模拟可以通过对 GPIO 控制器编程来实现。此时,端口应当被设置为复用功能输出模式。显然,这时相应的引脚不再由外部驱动,而是通过 GPIO 控制器由软件来驱动。

● 对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。

● 对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。

如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。

输入配置

当 I/O 端口配置为输入时:

● 输出缓冲器被禁止

● 施密特触发输入被激活

● 根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接

● 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器

● 对输入数据寄存器的读访问可得到I/O状态

输出配置

当 I/O 端口被配置为输出时:

● 输出缓冲器被激活

─ 开漏模式:输出寄存器上的’0’激活 N-MOS,而输出寄存器上的’1’将端口置于高阻状态(P-MOS 从不被激活)。

─ 推挽模式:输出寄存器上的’0’激活 N-MOS,而输出寄存器上的’1’将激活 P-MOS。

● 施密特触发输入被激活

● 弱上拉和下拉电阻被禁止

● 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器

● 在开漏模式时,对输入数据寄存器的读访问可得到I/O状态

● 在推挽式模式时,对输出数据寄存器的读访问得到最后一次写的值。

复用功能配置

当 I/O 端口被配置为复用功能时:

● 在开漏或推挽式配置中,输出缓冲器被打开

● 内置外设的信号驱动输出缓冲器(复用功能输出)

● 施密特触发输入被激活

● 弱上拉和下拉电阻被禁止

● 在每个APB2时钟周期,出现在I/O脚上的数据被采样到输入数据寄存器

● 开漏模式时,读输入数据寄存器时可得到I/O口状态

● 在推挽模式时,读输出数据寄存器时可得到最后一次写的值

模拟输入配置

当 I/O 端口被配置为模拟输入配置时:

● 输出缓冲器被禁止

● 禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强置为’0’

● 弱上拉和下拉电阻被禁止

● 读取输入数据寄存器时数值为’0’

下面就HK32F103xC/D/E在操作上需要应用开发者注意的。

用户在使用HK32F103xC/D/E时,使用软件循环产生定时,用GPIO翻转模拟时序,发现跟友商不一致。这是我们设计跟友商不一样。

解决方法如下:

不开 Cache,HK32F103xCxDxE 效率低一点。

打开 Cache,HK32F103xCxDxE 效率明显提高。

以上有关寄存器的介绍可以参考我们HK的HK32F103xC/D/E的应用手册。

来源:航顺芯片

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16024

    浏览量

    343722
  • GPIO
    +关注

    关注

    16

    文章

    1139

    浏览量

    50604
  • 航顺芯片
    +关注

    关注

    1

    文章

    91

    浏览量

    22653
收藏 人收藏

    评论

    相关推荐

    HK32MCU用笔记(二十)| HK32F103xC/D/E USB枚举情况分析(二)

    HK32MCU用笔记(二十)| HK32F103xC/D/E USB枚举情况分析(二)
    的头像 发表于 09-18 10:58 348次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(二十)| <b class='flag-5'>HK32F103xC</b>/D/E USB枚举情况分析(二)

    HK32MCU用笔记(十九)| HK32F103xC/D/E USB枚举情况分析

    HK32MCU用笔记(十九)| HK32F103xC/D/E USB枚举情况分析
    的头像 发表于 09-18 10:58 450次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十九)| <b class='flag-5'>HK32F103xC</b>/D/E USB枚举情况分析

    HK32MCU用笔记(十八)| HK32F103xC/D/E-DAC的应用及注意事项

    HK32MCU用笔记(十八)| HK32F103xC/D/E-DAC的应用及注意事项
    的头像 发表于 09-18 10:58 658次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十八)| <b class='flag-5'>HK32F103xC</b>/D/E-DAC的应用及<b class='flag-5'>注意事项</b>

    HK32MCU用笔记(十七)| HK32F103xC/D/E-flash擦写应用及注意事项

    HK32MCU用笔记(十七)| HK32F103xC/D/E-flash擦写应用及注意事项
    的头像 发表于 09-18 10:58 710次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十七)| <b class='flag-5'>HK32F103xC</b>/D/E-flash擦写应用及<b class='flag-5'>注意事项</b>

    HK32MCU用笔记(十六)| HK32F103xC/D/E-Timer的应用及注意事项

    HK32MCU用笔记(十六)| HK32F103xC/D/E-Timer的应用及注意事项
    的头像 发表于 09-18 10:58 491次阅读

    HK32MCU用笔记(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置

    HK32MCU用笔记(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置
    的头像 发表于 09-18 10:58 459次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十五)| <b class='flag-5'>HK32F103xC</b>/D/E-同步注入模式下,ADC2工作状态不能单独配置

    HK32MCU用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项

    HK32MCU用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项
    的头像 发表于 09-18 10:58 483次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十四)| <b class='flag-5'>HK32F103</b>x/C/D/E-TIM1的应用及<b class='flag-5'>注意事项</b>

    HK32MCU用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项

    HK32MCU用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项
    的头像 发表于 09-18 10:58 736次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十三)| <b class='flag-5'>HK32F103xC</b>/D/E-ADC的应用及<b class='flag-5'>注意事项</b>

    HK32MCU用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项

    HK32MCU用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
    的头像 发表于 09-18 10:58 694次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十一)| <b class='flag-5'>HK32F103xC</b>/D/E的flash读保护应用及<b class='flag-5'>注意事项</b>

    HK32MCU用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制

    HK32MCU用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制
    的头像 发表于 09-18 10:58 480次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十)| <b class='flag-5'>HK32F103xC</b>/D/E的ADC常规和注入通道同时触发时的处理机制

    HK32MCU用笔记(九)| HK32F103x8xB系列CAN的应用解决方案

    HK32MCU用笔记(九)| HK32F103x8xB系列CAN的应用解决方案
    的头像 发表于 09-18 10:59 423次阅读

    HK32MCU用笔记(七)| 航顺HK32MCU闩锁效应问题研究及预防措施

    HK32MCU用笔记(七)| 航顺HK32MCU闩锁效应问题研究及预防措施
    的头像 发表于 09-18 10:59 1097次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(七)| 航顺<b class='flag-5'>HK32MCU</b>闩锁效应问题研究及预防措施

    HK32MCU用笔记(六)| HK32MCU芯片调试心得

    HK32MCU用笔记(六)| HK32MCU芯片调试心得
    的头像 发表于 09-18 10:59 479次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(六)| <b class='flag-5'>HK32MCU</b>芯片调试心得

    HK32MCU用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误

    HK32MCU用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误
    的头像 发表于 09-18 11:00 801次阅读

    HK32MCU用笔记(一)| HK32F030X系列在PH测量笔的应用

    HK32MCU用笔记(一)| HK32F030X系列在PH测量笔的应用
    的头像 发表于 09-18 11:00 536次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(一)| <b class='flag-5'>HK</b>32F030X系列在PH测量笔的应用