你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32 引脚电平经验分享

[复制链接]
攻城狮Melo 发布时间:2023-3-26 14:51
1. 问题描述
今天调试STM32软件I2C的过程中遇到了一个问题:在采用 STM32 的 PB3 和 PB4 引脚做软件I2C通信时,发现 PB3 和 PB4 引脚的电平一直拉不低。反复检测了硬件连接是否短路,发现并没有硬件问题。后来查看了 STM32 芯片的原理图,发现PB3 和 PB4 引脚对应于JTAG调试接口,芯片默认开启JTAG调试功能。因此,程序中如果不禁用 JTAG 调试方法,那么这两个引脚将无法作为正常引脚来使用。STM32芯片原理图如下:

8ad2e8ad7c77475796e987645646dd1c.png

2. 解决方法
在 stm32f10x_gpio.h 中我们可以看到 STM32 的 JTAG 和 SWD 使能地址:

  1. #define GPIO_Remap_SWJ_NoJTRST      ((uint32_t)0x00300100)  /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */
  2. #define GPIO_Remap_SWJ_JTAGDisable  ((uint32_t)0x00300200)  /*!< JTAG-DP Disabled and SW-DP Enabled */
  3. #define GPIO_Remap_SWJ_Disable      ((uint32_t)0x00300400)  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */
复制代码

根据参考文献中提到的方法,为了使 PB3 和 PB4 能够作为正常引脚使用,用于软件 I2C 通信,我们需要禁用 JTAG调试方法。在整个程序的初始化函数中加上如下代码:


  1. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);     //禁用JTAG
复制代码

这样一来,PB3 和 PB4 即可作为正常引脚使用。
————————————————
版权声明:警升
如有侵权请联系删除




收藏 评论0 发布时间:2023-3-26 14:51

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版