32 配置引脚中断_「小马哥学习笔记」STM32G071 PD0 PD2引脚使用注意事项

在STM32G071开发中,使用PD0和PD2引脚作为外部中断时遇到问题,未触发中断时测量到的电平为0.9V,导致无法正常触发。通过查阅数据手册,发现需要配置SYSCFG registers的 UCPD2_STROBE位来解决问题。使用HAL库或LL库进行相应设置,以避免与TYPE-C充电管理引脚冲突。
摘要由CSDN通过智能技术生成
23eb13c1c1a0fcaf8a2124a05c4e9c55.png

每一个电工最不愿意的见到的是:为 MCU 选型而烦恼

MCU 作为嵌入式系统的核心器件,其选型可以说是重中之重,成本、性能、开发难易.......

4bfbd24d0a456906be804c97ec4c8b5c.png

ST 新推出的新一代入门级利器 STM32G0 就是为了打破成本、性能、开发难易这个不可能三角!

d386689fafdd717d2ff2a45cc98b6379.png

接下来让我们来数数G0为你的新项目省下来的各种费用。

0978c7bc4b34f7b35cf166dd6ee4b389.png

最让人激动的是,不但省下了这么多外围器件成本,而且G0本身的价格媲美同等配置的F0!

7b2e3385d69cfeabc6ac1ff923a398c4.png

那么,在设计应用中,有没有需要特别避过的坑?

小马哥,资深蝶粉,在G0开发中,被PD0,PD2引脚使用困扰,让我们一起复盘小马哥踩过的坑和他的解决之道。

STM32G071 PD0 PD2引脚使用注意事项

【背景】STM32G071的PD0,PD2作为外部中断使用,外部接10K上拉电阻拉到3.3V。外部设备被触发后电平为低电平,正常无信号。

【问题】在以上背景下,按道理外部设备正常时(未触发中断),IO口输入电平应该是3.3V。但是实际上测量到的是0.9V,这和触发后的0V,都被单片机识别为低电平,故无法触发中断。

【分析解决】查阅STM32G0数据手册可知:

2b47d4cbf6b1aad543d764108b0a86b8.png

这个引脚的电平为FT_c,我们知道FT是容忍5V,那么FT_c是什么意思?再看说明:

31f8ce69a742150195169fbfeac444b9.png

然后去用户手册查看GPIO相关说明,找到以下内容:

aa0ab306dda5e78c02eada109f2a24ed.png

基本上了解状况了,然后看一下相关寄存器说明:

716b38e4ade562b1ebc2eb2c954449f2.png

具体说明:

66fc696cf33026fc7aa50a66d1960bce.png

由以上说明,大致可以判断如何操作:在初始化IO的时候,顺便把SYSCFG registers的 UCPD2_STROBE位设置一下就 OK 了。

HAL库操作:

HAL_SYSCFG_StrobeDBattpinsConfig(SYSCFG_CFGR1_UCPD2_STROBE);

LL库操作:

MODIFY_REG(SYSCFG->CFGR1, (SYSCFG_CFGR1_UCPD1_STROBE |SYSCFG_CFGR1_UCPD2_STROBE), SYSCFG_CFGR1_UCPD2_STROBE);

请再注意,其实PA8和PA15也是这样的,如果我们不需要这个下拉电阻,需要按照上面的操作一下。

那么为什么 STM32G071 有这样的设置呢?看下面IO功能即可知道,这几个引脚其实是:

PD0

UCPD2_CC1

PD1

UCPD2_CC2

PA8

UCPD1_CC1

PB15

UCPD1_CC2

2ea2e5cc21c02fd38c4a3375ad4e8a11.png

也就是TYPE-C充电管理的相关引脚,所以会有这样的设置,关于TYPE-C相关知识,可以自行百度了解详情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值