历史上的今天
今天是:2024年09月06日(星期五)
2021年09月06日 | STM32G070单片机 PD0 PB15引脚内部下拉使用需要主意
2021-09-06 来源:eefocus
项目场景:
STM23G070单片机的PD0引脚作为开漏输出的时候,外部接了一个51K上拉电阻到5V,想让PD0开漏输出高的时候是5V,开漏输出低的时候是0V。
问题描述:
STM23G070单片机的PD0引脚作为开漏输出的时候,外部接了一个51K上拉电阻到5V,单独测试PD0的时候是可以正常的,开漏输出高的时候5V,低的时候可以到0V,但是一旦PD1推挽输出输出高之后,情况就变了,在PD1推挽输出高情况下,PD0开漏输出高的时候却始终只有2.4V,输出低的时候是0V,正常的。

原因分析:
查阅STM32G0数据手册可知

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

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

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

具体说明:
(https://img-blog.csdnimg.cn/20201217142636491.png?imageView2/2/w/550?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDQ5MzQy,size_16,color_FFFFFF,t_70
解决方案:
看了以上说明,基本明白怎么操作了。在初始化IO的时候,应该把SYSCFG registers的UCPD2_STROBE位设置一下就ok了。
HAL库操作:
HAL_SYSCFG_StrobeDBattpinsConfig(SYSCFG_CFGR1_UCPD2_STROBE);
寄存器操作:
SYSCFG->CFGR1 |= 0x00600;
其实PA8和PA15也是这样的。如果我们不需要这个下拉电阻,需要按照上面的操作调整一下。


即TYPE-C充电管理的相关引脚,所以才会有这样的设置。若想进一步了解TYPE-C相关知识,可以自行查找相关资料。
史海拾趣
|
本文章转自网络,本来想自己整理 但由于时间关系只能贴上原帖,这篇文章不错,教会大家如何看懂复杂难懂的datasheet 希望对大家有帮助 DS18B20时序 Author:exploer CIEE ,CAU 2008-9-16: 本文档参照M ...… 查看全部问答> |
|
(1)vxworks有一个 tickGet 函数可获取当前tick值,这个返回的是什么单位? SYS_CLK_RATE这个参数来设置1000,即系统时钟1秒发生1000次中断,两个时间差就是1ms,也就是1tick = 1ms. 那tickGet 两次调用后的差值是不 ...… 查看全部问答> |
|
我的目的是通过写一个空的设备dll,再写个上层的简单程序来访问我的设备驱动dll,就是一个简单的HelloWorld,看看对于dll入口和接口十否设计对,注册设备、上层访问,这3步能否走通。 我用EVC编译出一个dll,并通过EVC上载到设备上: cpp代码如下 ...… 查看全部问答> |
|
如题: TI官网提供了使用Stellaris加上TI cc3000 wifi芯片开发的方案. 下载连接为:http://www.ti.com/tool/cc3000-stellarissw其中Stellaris LM4F 使用WiFi连接方式,既可以作为Web Server服务器端,也可以作为客户端. Web server 服务器支持多个 ...… 查看全部问答> |
|
CH452按键扩展只要2个IO口实现16个用N5110液晶显示 用CH452驱动4*4矩阵键盘行列行列式+N5110液晶显示 CH452按键扩展只要2个IO口实现16个按键的扩展适合MSP430G2553用N5110液晶显示… 查看全部问答> |




