|
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芯片原理图如下:
L' _' N, S( m# {8 G. X 2. 解决方法 在 stm32f10x_gpio.h 中我们可以看到 STM32 的 JTAG 和 SWD 使能地址:
根据参考文献中提到的方法,为了使 PB3 和 PB4 能够作为正常引脚使用,用于软件 I2C 通信,我们需要禁用 JTAG调试方法。在整个程序的初始化函数中加上如下代码:* I. j# e3 J# {! X8 o9 _0 X, F ) D$ L+ q1 k4 V; Q/ d) z
这样一来,PB3 和 PB4 即可作为正常引脚使用。9 j! Y+ k7 b: I% ^& ? ———————————————— 版权声明:警升 如有侵权请联系删除 8 W3 ^& v& v5 q; V' x: K + ?+ A9 E7 N+ v# P- D/ Z0 ` |
《STM32CubeMX2 实战课程》学习笔记5+CubeMX2生成的Uart初始化代码中没有使能
《STM32CubeMX2 实战课程》学习笔记4+FreeRTOS中的SysTick错误及改正
使用stm32C542做的低功耗密码锁示例
《STM32CubeMX2 实战课程》学习笔记1+由MX2生成MDK5项目并打开
《STM32CubeMX2 实战课程》学习笔记3.+sleep/stop/standby低功耗模式的入口
《STM32CubeMX2 实战课程》学习笔记2+MX2生成的MDK5工程中添加已存在文件(*.c / *.h)
【STM32MP257-DK】01开发板开箱、ST MPU 生态资源使用、环境搭建以及镜像更新
基于STM32在线升级OTA经验分享
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
Keil下的STM32N6之RAM运行工程配置说明
微信公众号
手机版