上周在公司做了一个项目,调试一个mcu,本以为很简单的调试一下裸机驱动,但是调试过程中遇到了一些问题让我觉得比较有意思,记录一下。

1、关于stm32的SMBUS功能的介绍

  由于笔者也没有玩过smbus,只是在stm32的参考手册上看到过关于它的介绍,就直接放出stm32参考手册上的官方说明,更详细的介绍大家可以直接去看stm32的参考手册。

2、关于外设功能冲突的介绍

  之所以要介绍SMBus功能,是因为这两根管脚的默认功能都是SMBus,笔者当时做项目的时候,使用的是pb5管脚重映射功能为SPI的MOSI功能。但是调试的时候发现我的硬件I2C1功能一开启,I2C1和SPI1功能都会异常,让硬件打过信号发现我的PB5管脚一直为高电平状态,功能异常。



  后面我发现,一旦我将pb5管脚重映射为SPI1_MOSI后,开启I2C1的时钟时,就会导致SPI1功能失效,后面笔者查询了一下官方的勘误手册,才发现这个在勘误手册上已经有了说明。

there is a conflict between the SPI1 MOSI and the I2C1 SMBA signals (even if SMBA is not used).

there is a conflict between the TIM3_CH2 signal and the I2C1 SMBA signal (even if SMBA is not used)

这两句话很关键,它的意思是:

  • SPI1 MOSI和I2C1 SMBA信号冲突(即使不使用SMBA)。

  • TIM3_CH2信号与I2C1 SMBA信号冲突(即使不使用SMBA)。

  后面官方给出的解决办法就是说在使用它的SPI MOSI功能和TIM3_CH2功能的时候需要将i2c时钟关闭,也就是说如果使用PB5管脚的重映射功能的时候,I2C1是不可以被开启的,它的外设时钟也需要关闭。

  笔者怀疑是因为PB5自身默认功能I2C1_SMBA受到I2C时钟的影响导致其他功能无法使用,我尝试寻找关闭I2C1_SMBA的方法,没有找到,看来这个问题是设计芯片的时候就有的配置,笔者查询了另一根默认功能为I2C2_SMBA的管脚PB12,也在勘误手册上找到了有关解释,虽然PB12管脚没有重映射功能,但是他的复用功能很多。



  后面查询了勘误手册,果然是有记录的。



  也是同样的意思,开启I2C2时钟以后其他功能无法使用。

  笔者后面发现这个问题以后就使用了软件模拟I2C来解决这个问题,但是实际上如果大家想要使用硬件I2C的话,一定要关注这两根管脚,尽量避开冲突,以免引起不必要的麻烦。笔者后面也发现不光是stm32f103RB这一款mcu有这个问题,常用的c8t6等也有,大家可以多多关注他们的勘误手册。

关于stm32f10xRB系列的PB5和PB12外设冲突问题的更多相关文章

  1. TMS320C54x系列DSP的CPU与外设——第1章 绪论

    第1章 绪论 TMS320C54x DSP是TMS320系列DSP产品中的定点数字信号处理器.C54x DSP满足了实时嵌入式应用的一些要求,例如通信方面的应用. C54x的中央处理单元(CPU)具有 ...

  2. TMS320C54x系列DSP的CPU与外设——第3章 存储器

    第3章  存储器 本章介绍了TMS320C54x DSP存储器的构成和操作.一般来说,C54x器件共有192K 16位字的存储窨,这个空间分成3个专用的部分:64K字程序.64K字数据和64K字I/O ...

  3. TMS320C54x系列DSP的CPU与外设——第2章 TMS320C54x DSP体系结构总体介绍

    第2章 TMS320C54x DSP体系结构总体介绍 本章介绍TMS320C54x DSP体系结构的概况,包括中央处理单元(CPU).存在器和片内外设. C54x DSP采用了高级的改进哈佛结构,用8 ...

  4. TMS320C54x系列DSP的CPU与外设——第5章 数据寻址

    第5章 数据寻址 C54x DSP提供7种基本寻址方式. ■ Immediate addressing uses the instruction to encode a fixed value.    ...

  5. TMS320C54x系列DSP的CPU与外设——第8章 流水线

    第8章 流水线 本章描述了TMS320C54x DSP流水线的操作,列出了对不同寄存器操作时的流水线延迟周期.(对应英语原文第7章) 8.1 流水线操作 TMS320C54x DSP有一个6段的指令流 ...

  6. 第21章 DMA—直接存储区访问—零死角玩转STM32-F429系列

    第21章     DMA—直接存储区访问 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...

  7. Zynq7000系列之芯片系统结构概述

    相比较经典的FPGA,Zynq7000系列最大的特点是将处理系统PS和可编程资源PL分离开来,固化了PS系统的存在,实现了真正意义上的SOC(System On Chip). 1.  Zynq7000 ...

  8. 【STM32学习笔记1】基于固件库的STM32_MDK工程模版

    文章包含STM32固件库介绍和工程模板搭建两方面内容. 一.STM32固件库介绍 要建立工程模板,首先要对STM32的固件库有所了解.STM32的固件可以从ST官网下载,网址为:http://www. ...

  9. MSP MCU I2C入门指南

    这是一份介绍性指南,指导你如何用超低功耗MSP微控制器 (MCU) 开始一个与I2C通信有关的项目: 简介 I2C(或称为I2C,集成电路总线)是一种两线制通信形式,主要用来在短距离.电路板间的应用中 ...

随机推荐

  1. Xmind头脑风暴

    下图导出到excel后 上图对应的excel表格如下:

  2. DYOJ 【20220303模拟赛】最少分组 题解

    最少分组 题意 \(n\) 个点 \(m\) 条边的无向图,可以删掉 0 条或多条边,求满足条件的最小连通块数量: 对每个顶点对 \((a,b)\) ,若 \(a\) 和 \(b\) 同属于一个连通块 ...

  3. 关于Vue 移动端适配 (px2rem 插件将px转为rem)

    一.安装 npm install px2rem-loader lib-flexible --save 二.入口文件main.js加上 import 'lib-flexible/flexible.js' ...

  4. RocketMQ消息的顺序与重复

    1.如何保证消息的顺序 原因:生产者将消息发给topic,topic分发给不同的队列再给多个消费者并发消费,难以保证顺序. 方案:topic和队列之间加入MessageQueueSelector.将一 ...

  5. 缤纷多彩的WPF样式框架,开源项目

    下面介绍的四种主流样式框架(最近项目需要,所以了解了一些),在Nuget及Github均可以找到~ 首推样式框架MahApp.Metro 再推样式框架ModernUI 三推样式框架MaterialDe ...

  6. 3行python代码翻译70种语言,这个OCR神奇太赞了

    写在前面的一些P话: 今天给大家介绍一个超级简单且强大的OCR文本识别工具:easyocr. 这个模块支持70多种语言的即用型OCR,包括中文,日文,韩文和泰文等.完全满足了大家对于语言的要求,不管你 ...

  7. Training a classifier

    你已经学习了如何定义神经网络,计算损失和执行网络权重的更新. 现在你或许在思考. What about data? 通常当你需要处理图像,文本,音频,视频数据,你能够使用标准的python包将数据加载 ...

  8. 北京市行政村边界shp数据/北京市乡镇边界/北京市土地利用分类数据/北京市气象数据/降雨量分布数据/太阳辐射数据

     数据下载链接:数据下载链接​ 北京是一座有着三千多年历史的古都,在不同的朝代有着不同的称谓,大致算起来有二十多个别称.北京地势西北高.东南低.西部.北部和东北部三面环山,东南部是一片缓缓向渤海倾斜的 ...

  9. 从零开始制作【立体键盘】,画UI免写CSS,【盲打练习】的交互逻辑只用了10来行表达式!

    手把手教你从空白页面开始通过拖拉拽可视化的方式制作[立体键盘]的静态页面,不用手写一行CSS代码,全程只用10来行表达式就完成了[盲打练习]的交互逻辑. 整个过程在众触应用平台进行,快速直观. 最终U ...

  10. MongoDB慢查询与索引

    MongoDB慢查询 慢查询分析 开启内置的慢查询分析器 db.setProfilingLevel(n,m),n的取值可选0,1,2 0:表示不记录 1:表示记录慢速操作,如果值为1,m需要传慢查询的 ...