项目场景:
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?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相关知识,可以自行查找相关资料。
上一篇:解决STM32单片机的ADC采样不准确偏移的问题
下一篇:解决串口开启DMA接受却只能接收到第一个字节的问题
推荐阅读最新更新时间:2024-11-10 11:18
推荐帖子
- GSM AT指令怎么取得本机号码?
- GSMAT指令怎么取得本机号码?GSMAT指令怎么取得本机号码?给自己发短信不就知道了,At命令好似没恩,本机号码是自己写进去的,不一定能获取ZTE的GSM/GPRS模块用这个AT指令:2.6.5+CNUM:获取本机号码描述:该指令用于读取本机号码。格式:AT+CNUM示例AT+CNUM+CNUM:,130********,129,7,4OK参数:本机号码需要通过AT+CPBS=ON;AT+CPBW指令写入SIM卡,然后才能通过AT+CNUM读取。楼主
- dajun 嵌入式系统
- 安规电容的原理?
- 安规电容主要分为X电容和Y电容,资料介绍说X电容容量较大,适合滤除共模干扰,所以并在火线之间,Y电容容量较小,适合滤除差模干扰,所以并在火线和地线之间,请问这是什么原理?与要滤除的信号有关系吗?把要滤除的信号频域分析,在按照电容的容抗计算,推导出共模干扰和差模干扰分别用多大的电容? 安规电容的原理?安规电容的放置对电源设计来是也不是什么核心技术,需要了解的是什么是工模干扰,和差模干扰X电容和Y电容就是处理这两个问题的X电容容量较大,通常用于滤除共模干扰Y电容容量较小,通常用于
- 乱世煮酒论天下 分立器件
- DATA Abort错误处理如何处理?
- 我在vs2005开发的串口程序放到wince5.0上出现如下错误请问是怎么回事?DataAbort:Thread=838cf520Proc=82326340\'device.exe\'AKY=00000405PC=02a91b5c(serial_smdk2440.dll+0x00001b5c)RA=02a9450c(serial_smdk2440.dll+0x0000450c)BVA=06000000FSR=00000007RaiseException:Thread=83
- z9x386 嵌入式系统
- 5G 毫米波技术及基站解决方案一起来讨论一下吧。
- 最近,qorvo在谈谈5G毫米波技术及基站解决方案中,介绍到,进入5G时代,另一个明显的变化就是频宽的增加。基站整版效率的改善,也是大家的一个重要关注点。GaN在射频应用中有其他材料无法比拟的优势,面向5G毫米波需求提供了领先的PA、FEM和LNA等射频器件产品。针对不同的应用场景,提供不同的解决方案。大家一起来讨论一下吧,除了以上基础元件射频元件等,5G还有哪些具体的解决方案。5G毫米波技术及基站解决方案一起来讨论一下吧。场馆AI视频监控和人
- alan000345 RF/无线
- 【求助】MS430f449中断服务程序
- 请问:在MSP430的c语言编写中,中断服务程序如何调用?采用什么形式?在配套书中的实例中:#pragmavector=WDT_VECTOR_interuptvoidWDT_Interupt(void)如何理解有这方面的资料吗【求助】MS430f449中断服务程序这个IAR3.XX的写法。要先申明中断向量,然后写中断服务程序。看一下IAR里的帮助文件。就这么用吧,请教大侠们:msp430f449单片机的中断:如WDT、定时器等使用
- wanxd 微控制器 MCU
- 基于CC3301芯片的双模WiFi模块E103-W13产品说明
- E103-W13系列WiFi6+蓝牙5.4协议双模WiFi模块E103-W13是基TI第十代Combo芯片CC3301推出一款2.4GHz工作频段Wi-Fi6协议+低功耗蓝牙5.4协议的双模Wi-Fi模块。该双模蓝牙WiFi模块内部集成2.4GHz工作频段+PA,适用于输出功率高达+21dBm的完整无线解决方案,并且还可以与TISitaraMPU(Linux)/MCU+(FreeRTOS)以及其他应用程序的处理器无缝集成。WiFi模块功能上,双模WiFi模块支持IEEE8
- 成都亿佰特 测试/测量