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

基于STM32 引脚电平经验分享

[复制链接]
攻城狮Melo 发布时间:2023-3-26 14:51
1. 问题描述" Q' E( O9 L1 E6 \8 e; u4 C+ l
今天调试STM32软件I2C的过程中遇到了一个问题:在采用 STM32 的 PB3 和 PB4 引脚做软件I2C通信时,发现 PB3 和 PB4 引脚的电平一直拉不低。反复检测了硬件连接是否短路,发现并没有硬件问题。后来查看了 STM32 芯片的原理图,发现PB3 和 PB4 引脚对应于JTAG调试接口,芯片默认开启JTAG调试功能。因此,程序中如果不禁用 JTAG 调试方法,那么这两个引脚将无法作为正常引脚来使用。STM32芯片原理图如下:
1 n% s1 u/ A2 [
3 R& c" X+ D: x7 r9 F. n  n$ T
8ad2e8ad7c77475796e987645646dd1c.png * h  |& K2 k) ]1 O
  L' _' N, S( m# {8 G. X
2. 解决方法
4 {) p' M! k+ Q* R7 a. h在 stm32f10x_gpio.h 中我们可以看到 STM32 的 JTAG 和 SWD 使能地址:
6 T) V' a0 {- _4 Q7 _: k
. g0 N! s1 W' @* D/ y. o
  1. #define GPIO_Remap_SWJ_NoJTRST      ((uint32_t)0x00300100)  /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */
    ! n% w; Y. ]2 J. S
  2. #define GPIO_Remap_SWJ_JTAGDisable  ((uint32_t)0x00300200)  /*!< JTAG-DP Disabled and SW-DP Enabled */6 v! z* P" |; |& T
  3. #define GPIO_Remap_SWJ_Disable      ((uint32_t)0x00300400)  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */
    * t% C0 q8 s, Z& v5 @4 ?
复制代码

+ Z6 m" O. P/ y1 v0 O  }6 V- W根据参考文献中提到的方法,为了使 PB3 和 PB4 能够作为正常引脚使用,用于软件 I2C 通信,我们需要禁用 JTAG调试方法。在整个程序的初始化函数中加上如下代码:
* I. j# e3 J# {! X8 o9 _0 X, F
) D$ L+ q1 k4 V; Q/ d) z
  1. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);     //禁用JTAG
      O. d' ^' A$ ^8 y
复制代码

$ d  c: m, X1 c, }这样一来,PB3 和 PB4 即可作为正常引脚使用。9 j! Y+ k7 b: I% ^& ?
————————————————
" w5 r- }, g' {版权声明:警升
; z* I* H, H$ W, P2 e# X3 v' b如有侵权请联系删除

- f8 P8 q/ ^7 a/ X" Z5 ^
+ `% h; U2 o% ?6 Y% G1 l& ^8 W3 ^& v& v5 q; V' x: K
+ ?+ A9 E7 N+ v# P- D/ Z0 `
赞 收藏 评论0 发布时间:2023-3-26 14:51

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版