小小阿风 2024-09-21 21:44 采纳率: 0%
浏览 4

stm32f105无法控制PB3引脚输出的问题

本人在用固件库调试stm32f105的时候,遇见一个很奇怪的问题,当把PB3引脚作为普通IO输出的时候,无论输出高电平还是低电平,万用表测得引脚电平都为低,但是debug读取该引脚显示已经拉低或者拉高,寄存器也正常显示,但还是测得引脚电平为低,无法控制该引脚。程序中也已经复用,并且按照网上查到的普遍的解决方法如下程序所示:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
DBGMCU->CR &= ~((uint32_t)1<<5);
AFIO->MAPR = (AFIO->MAPR & ~((uint32_t)0x7 << 24)) | (2 << 24);
但还是不行,最后用cubeMX生成程序来控制,发现PB3引脚可以正常拉高或者拉低,用没有哪位遇见过这种情况的,麻烦各位给晚辈提一下意见或者解决方法?感谢感谢!

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-21 21:45
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    首先,非常感谢您提供关于 STM32F105 问题遇到的详细情况。根据您的描述,似乎是遇到了一些配置或硬件连接的问题导致无法控制 PB3 引脚的输出电平。以下是一些建议和可能的解决方法:

    1. 引脚配置检查:确保您已经正确配置了 PB3 引脚为普通 IO 输出模式。通常,您需要设置 GPIO 引脚的模式(输入、输出等)以及输出类型(推挽或开漏)。此外,确认引脚配置的速度是否正确设置。可以通过检查生成的代码或使用CubeMX进行确认。
    2. 时钟配置检查:确保 APB2 时钟已正确启用。虽然您提到了启用了 APB2 的时钟,但最好还是确认一下是否在代码中设置了正确的时钟配置。特别是,检查 APB2 时钟的预分频值和倍频设置是否正确。此外,使用CubeMX生成程序是一个好的方式,以确保时钟配置是正确的。如果您使用了CubeMX来生成程序并且它能够正确控制 PB3 引脚,那么您应该与手动编写的代码进行对比,找出可能的差异。
    3. 硬件连接检查:确保您的硬件连接是正确的。检查 PB3 引脚是否与其他元件短路或连接到错误的电源上。另外,确保万用表连接正确,并尝试使用不同的万用表进行测试以排除万用表的问题。
    4. 固件库版本检查:确认您使用的固件库版本是否与您的 STM32F105 型号兼容。有时候固件库的新版本可能会有不同的设置方法或者参数,因此尝试更新到最新版本的固件库并检查相应的文档可能有助于解决问题。
    5. 其它设置检查:查看其他可能影响到 PB3 引脚输出的设置,比如休眠模式配置、引脚复用等。有时候某些特定的配置会影响到引脚的功能。此外,检查代码中是否有其他部分意外地修改了 GPIO 引脚的状态或配置。
    6. 参考官方文档和示例代码:参考 STM32 的官方文档和示例代码是一个很好的方式来解决此类问题。确保您遵循了官方文档中的步骤和建议,并且参考示例代码来确保您的代码是正确的。

    如果以上建议都无法解决问题,建议您提供更详细的代码和配置信息,以便更准确地帮助您找到问题所在。另外,也可以考虑联系 STM32 的技术支持或参与相关的技术社区进行讨论,以获得更多的帮助和建议。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月21日

悬赏问题

  • ¥15 dify知识库创建问题
  • ¥15 如何用C#的chart画1000万个点不卡顿
  • ¥15 爬虫技术找到网上看过房源客户的电话
  • ¥20 代码:Python随机森林反演生物量数据处理问题
  • ¥50 微信野豹球杆小程序数据
  • ¥15 Linux系统的命令行窗口回车变成了换行,无法执行命令了
  • ¥15 vb6.0调用ImageMagick进行图片转换问题
  • ¥15 安卓组件化工程引入Arouter报错there's no route matched path[/login/LoginActivity,如何解决?
  • ¥50 如何进行点云姿态调整优化
  • ¥20 关于c++的问题 如何用qt完成