stm32g070的PD0/PD2 PA8和PB15

这篇具有很好参考价值的文章主要介绍了stm32g070的PD0/PD2 PA8和PB15。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       目前在用STM32G070做项目,其中PD2+TIMER3去模拟PWM,PD0用作按键检测,测试发现PD0低电平检测没有问题,高电平检测不到,电路图如下图所示:

stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机

 用万用表测试电平,高电平1.0V左右,首先怀疑硬件问题,把光电开关拔掉,P16悬空发现还是1.0V,后面电阻和电容也没有短路;再查软件,把IO口看了下,PD0初始化也看了,没有问题,想不通了,于是百度下,搜到下面这篇文章:STM32G070单片机 PD0 PB15引脚内部下拉使用需要主意。

项目场景:

STM23G070单片机的PD0引脚作为开漏输出的时候,外部接了一个51K上拉电阻到5V,想让PD0开漏输出高的时候是5V,开漏输出低的时候是0V。


问题描述:

STM23G070单片机的PD0引脚作为开漏输出的时候,外部接了一个51K上拉电阻到5V,单独测试PD0的时候是可以正常的,开漏输出高的时候5V,低的时候可以到0V,但是一旦PD1推挽输出输出高之后,情况就变了,在PD1推挽输出高情况下,PD0开漏输出高的时候却始终只有2.4V,输出低的时候是0V,正常的。
stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机


原因分析:

查阅STM32G0数据手册可知
stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机
这个引脚的电平类型为FT_c,我们知道FT是容忍5V的意思,那么FT_c是什么意思?不妨看看说明:stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机
然后去用户手册查看GPIO相关说明,找到以下内容:
stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机
基本上了解状况了,再看一下相关寄存器说明:
stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机
具体说明:
stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机?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也是这样的。如果我们不需要这个下拉电阻,需要按照上面的操作调整一下。
stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机
stm32g070的PD0/PD2 PA8和PB15,单片机,stm32,嵌入式硬件,单片机
即TYPE-C充电管理的相关引脚,所以才会有这样的设置。若想进一步了解TYPE-C相关知识,可以自行查找相关资料。

于是按着提示修改:

    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
    LL_SYSCFG_DisableDBATT(LL_SYSCFG_UCPD1_STROBE | LL_SYSCFG_UCPD2_STROBE);

或者

    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
    SYSCFG->CFGR1 |=0x00000600;

再测试,正常。文章来源地址https://www.toymoban.com/news/detail-649292.html

到了这里,关于stm32g070的PD0/PD2 PA8和PB15的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32G070RBT6基于STM32CubeMX自动生成ADC输入电压采样工程全过程讲解

    📌相关篇《【硬件开源电路】STM32G070RBT6开发板》 🛠STM32CubeMX工程配置过程演示 📢Keil工程完成业务代码以及烧录演示放在资源中,gif文件过大无法上传。 📚工程概要 本工程是基于STM32CubeMX工具来配置项目,功能需求:在PA0引脚接入一个外部模拟量信号(单片机能承受的电

    2024年02月01日
    浏览(45)
  • 关于stm32f103 PA15,PA12,PB3 io配置过程中遇见的大坑

    1.四种输入 浮空输入 GPIO_Mode_IN_FLOATING 浮空输入使用过程中,io口的电平由输入端决定 模拟输入 GPIO_Mode_AIN 上拉输入 GPIO_Mode_IPU 上拉输入过程中,io口会接一个上拉电阻,默认电平为高电平。 下拉输入 GPIO_Mode_IPD 下拉输入过程中,io口会接一个下拉电阻,默认电平为低电平 2

    2024年02月14日
    浏览(43)
  • STM32引脚PA15,PB3,PB4用做普通I/O口高低电平默认无法拉高拉低

    STM32,这个MPU上电默认PB4 PB3 PA15这些引脚电平且无法正常拉高拉低。 PB4,PA15为高电平,PB3为低电平。 其实原因是:I/O口不能正常输出一般都是端口被复用了造成的。 文章讲的这几个端口在单片机上电时默认就是复用的,JTAG相关的PA13,PA14,PA15,PB3,PB4引脚,禁用JTAG或SWD可以释放其

    2024年02月03日
    浏览(76)
  • STM32 使用调试引脚 PB3,PB4 P15 方法

    1.PB3/PB4/PA13/PA14/PA15引脚默认功能参照    PB3-----------------JTDO    PB4-----------------JNTRST    PA13-----------------JTMS    PA14-----------------JTCK    PB15-----------------JTDI 2.这是STM32官方库的宏定义 /// 可使用PB4 #define GPIO_Remap_SWJ_NoJTRST      ((uint32_t)0x00300100)  /*SWD使能、JTAG使能但是不包括

    2024年01月20日
    浏览(43)
  • 【国名技术】N32G401单片机驱动配置(STM32系列适用)

    N32G401总体上和STM32F4系列差不多,无论是从芯片资源,还是各种寄存器,都有相通之处,所以N32G401的所有驱动,如果使用smt32的话也可以借鉴使用(修改函数名) 文章代码仅限于参考,如果直接CV是肯定用不了的,源代码链接在最后 PS:所有驱动基于N32G401F7S8-1,一共20个引脚,

    2024年01月19日
    浏览(42)
  • STC32G单片机内置ADC及应用编程

          STC32G单片机内部集成了一个12位高速ADC转换器,ADC的最高时钟频率为系统频率的1/2。其输入通道多达15个(第15通道为专门测量内部1.19V参考信号源的通道),可分时切换使用。       STC15系列单片机内置ADC模块以电源电源作为ADC参考电压,STC32G的ADC模块则与之不同,它

    2024年02月09日
    浏览(77)
  • 【STM32】STM32G系列使用CORDIC模块加速计算

    STM32G431系列产品内置了CORDIC运算单元,可以用来加速数学计算,如三角函数、取模、开方等。适合大量数据进行相同的运算操作。配合DMA可以大大节省CPU计算开销。 使用CORDIC模块无需配置参数,若采用DMA方式则只需配置DMA读写通道,配置如下 在代码中对cordic模块进行初始化

    2024年02月12日
    浏览(40)
  • RT-Thread STM32G070RB-Nucleo开发板的BSP说明

    本文档为 STM32G070RB-Nucleo 开发板的 BSP (板级支持包) 说明。 主要内容如下: 开发板资源介绍 BSP 快速上手 进阶使用方法 通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱

    2024年02月03日
    浏览(51)
  • 64MHz 闪存STM32G0B1CEU6(STM32G0B1CCU6)STM32G0B1CBU6引脚配置图、32位微控制器

    STM32G0B1 32位微控制器具有最高512KB嵌入式闪存和144kB RAM存储器。该器件采用48-UFQFPN 引脚封装。它支持USB全速主机/设备、集成USB Type-C控制器和收发器、FDCAN协议以及多达8个UART。 STM32G0 32位微控制器 (MCU) 适合用于消费、工业和家电领域的应用,并可随时用于物联网 (IoT) 解决方案

    2024年02月09日
    浏览(40)
  • 基于高性能的STM32G031K4T6、STM32G031K6T6、STM32G031K8T6(ARM微控制器)64MHz 闪存 32-LQFP

    STM32G0 32位微控制器 (MCU) 适合用于消费、工业和家电领域的应用,并可随时用于物联网 (IoT) 解决方案。这些微控制器具有很高的集成度,基于高性能ARM® Cortex®-M0+ 32位RISC内核,工作频率高达64MHz。该器件包含内存保护单元 (MPU)、高速嵌入式内存、DMA以及各种系统功能、增强型

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包