首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
stm32硬件i2Cbusy
2024-10-21
解决STM32 I2C接口死锁在BUSY状态的方法讨论
关于STM32的I2C接口死锁在BUSY状态无法恢复的现象,网上已有很多讨论,看早几年比较老的贴子,有人提到复位MCU也无法恢复.只有断电才行的状况,那可是相当严重的问题.类似复位也无法恢复的情况是存在的,技术支持矢口否认问题存在,并不是正确面对问题的态度.比如我用这款F439芯片的SDRAM控制器,在错误操作后进入HardFault状态,复位无法恢复,JTAG也无法联机,只能断电重来,官方的Erratasheet里也提到了. 如果I2C接口无法可靠工作,那么所做的设计将存在严重隐患,不可能要求
STM32 硬件I2C 到底是不是个坑?
/** ****************************************************************************** * @author Maoxiao Hu * @version V1.0.0 * @date May-2015 ****************************************************************************** * < COPYRIGHT 2015 IS
STM32硬件IIC (转)
源: STM32硬件IIC
STM32硬件IIC驱动设计(转)
源: STM32硬件IIC驱动设计 参考: STM32—硬件IIC主机通信 STM32’s I2C 硬件BUG引发的血案(qzm) 解决STM32 I2C接口死锁在BUSY状态的方法讨论
(转)stm32硬件IIC
cube与I2C:https://www.cnblogs.com/121792730applllo/p/5044920.html I2C官网:https://www.i2c-bus.org/standard-mode/ Ⅰ.写在前面 上一篇文章是“STM32F10x_模拟I2C读写EEPROM”,讲述使用IO口模拟I2C总线通信,对EEPROM(AT24Xxx)进行读写操作的过程. 上一篇文章主要内容:I2C协议.模拟I2C底层驱动.EEPROM(AT24Xxx)单字节读写操作. 本文主要内容:
STM32 硬件UART接收超时检测设置
STM32 硬件UART接收超时检测设置 -----------------本文作者"智御电子",期待与电子爱好者交流学习.---------------- 应用场景 在uart应用中有时候需要进行双工通信,主机需要对从机的数据进行接收超时检测,例如modbus协议,主机在接收从机数据在3.5个字节时间后认为数据包接收完毕.那在这种情况下,一般的做法是设置一个定时器,在每接收到一个字节时清零定时器重新计数,直到定时器超过3.5个字节时间后触发中断即默认数据包接收完毕. 以上的定时器设置
浅谈 STM32 硬件I2C的使用 (中断方式 无DMA 无最高优先级)(转)
引子 STM32的硬件I2C很多人都对它望而却步.因为很多电工都说,STM32 硬件 I2C有BUG.不稳定.死机等等……最后都使用GPIO模拟I2C. 的确,模拟I2C好用.但是在我看来在一个72M的Cortex-M3的MCU上这样做非常不妥.一般来说I2C是一种慢速总线,就算工作在400kHz的快速模式上,I2C传送每个字节仍需要至少23us——还没有计算地址.起始信号和结束信号的发送.如果使用GPIO模拟的I2C,这23us的CPU时间都在空转中浪费了,而这23us已经可以做不少的事情了,
STM32硬件调试详解
STM32的基本系统主要涉及下面几个部分: 一.电源 1).无论是否使用模拟部分和AD部分,MCU外围出去VCC和GND,VDDA.VSSA.Vref(如果封装有该引脚)都必需要连接,不可悬空: 2).对于每组对应的VDD和GND都应至少放置一个104的陶瓷电容用于滤波,并接该电容应放置尽量靠近MCU: 3).用万用表测试供电电压是否正确.调试时最好用数字电源供电,以便过压或过流烧坏板子.电压最好一步一步从进线端测试到芯片供电端. 二.复位.启动选择 1).Boot引脚与JTAG无关.其仅是用于
STM32硬件IIC操作
Stm32具有IIC接口,接口有以下主要特性 多主机功能:该模块既可做主设备也可做从设备 主设备功能 C地址检测 位/10位地址和广播呼叫 支持不同的通讯速度 状态标志: 发送器/接收器模式标志 字节发送结束标志 总线忙标志 错误标志 个中断向量 可选的拉长时钟功能 具单字节缓冲器的DMA 虽然很多人说STM的硬件IIC不好用,但是对于这么一个设备去探索一下还是很有必要的,指不定哪天就用上了呢, IIC借口一共有九个寄存器,比较重要的几个寄存器分别如下 1. CR1 由这几个位我们可
STM32硬件IIC
/** * @brief 写一个字节到I2C设备中 * @param * @arg pBuffer:缓冲区指针 * @arg WriteAddr:写地址 * @retval 正常返回1,异常返回0 */ uint8_t I2C_ByteWrite(u8 pBuffer, u8 WriteAddr) { /* Send STRAT condition */ I2C_GenerateSTART(macI2Cx, ENABLE); I2CTimeout = I2CT_FLAG_TIMEOUT; /*
STM32 -- 硬件知识
一.网站资源 1.http://www.stmcu.com.cn/ 二.硬件 1.BOOT0 和 BOOT1 1)一般BOOT0和BOOT1跳线都跳到0(地): 只是在ISP下载的情况下,BOOT0=1,BOOT1=0, 下载完成后,把BOOT0的跳线接回0,也即BOOT0=0,BOOT1=0: 2)BOOT0和BOOT1 直接接地就可以了:不影响swd: 2.ST-LINK 和 STM32连接 1)单独供电 SWDIO,SWCLK,GND; 2) 使用st-link供电:SWDIO,
转载:关于STM32硬件I2C读写EEPROM代码实现原理的理解与总结
http://home.eeworld.com.cn/my/space-uid-716241-blogid-655190.html 一.I2C协议简介 I2C是两线式串行总线,用于连接微控制器及其外围设备.两根信号线分别是: 时钟信号线SCL和数据信号线SDA. 二.I2C总线传输时序 2.1 I2C传输协议的三种信号 I2C在数据传输过程中有三种信号类型,分别是:起始信号.结束信号和应答信号. ①起始信号:在时钟信号SCL为高电平时,数据线SDA由高电平跳变为低电平,开始传输数据: ②结束
STM32硬件复位时间
两个参数,,1低电平时间 2低电平压值 1.stm32复位时间 ------ 低电平时间:1.5 至 4.5 ms 2.压值
stm32 硬件错误
进入该模式,程序死机. 一般来说都是内存错误 1. 数组越界,装入数据溢出, 2. 堆和栈设置不当,这里面硬件的堆和栈在汇编文件中,如果有freertos等,重点检查,任务堆栈使用情况,一般任务堆栈溢出的可能性比较大. 重点检查函数,局部变量,减少临时函数,大数组创建,如果有尽量使用静态全局替代. 3. Heap_Size EQU 0x200; 改点释疑:有些人认为调整heap_size大小会导致系统出错,有些人认为堆向上涨,此值不能调大,实际上这个是不正确的,我们看他的名字叫
STM32硬件错误HardFault_Handler的处理方法
https://blog.csdn.net/electrocrazy/article/details/78173558
STM32学习内容和计划
一.STM32学习内容(流程) 1.学习STM32开发流程 ①MDK使用.建立工程.调试等 ②库开发方法 2.学习STM32常用外设开发 ①GPIO ②中断 ③定时器 ④串口 ⑤CAN 3.学习STM32项目开发 ①文件系统 ②GUI ③UCOSIII 4.学习STM32硬件架构 ①内存映射 ②指令执行时间 二.学习计划 1.学习STM32开发流程 完整用时2星期 2.学习STM32常用外设开发 完整用时1-2个月 3.学习STM32项目开发 完整用时1-2个月 4.学习STM32硬件架构 完整
一步步学习操作系统(1)——参照ucos,在STM32上实现一个简单的多任务(“啰里啰嗦版”)
该篇为“啰里啰嗦版”,另有相应的“精简版”供参考 “不到长城非好汉:不做OS,枉为程序员” OS之于程序员,如同梵蒂冈之于天主教徒,那永远都是块神圣的领土.若今生不能亲历之,实乃憾事! 但是,圣域不是想进就能进的呀…… OS融合了大量的计算机的基础知识,各个知识领域之间交织紧密,初来乍到者一不小心就会绕出个死结. 我的方法是:死结就死结,不管三七二十一,直接剪断,先走下去再说,回头我们再把这个剪断的死结再接上. 我们知道,“多任务”一般在介绍OS的书籍中,是属于中间或者靠后的部分,又或者分散在各
浅谈STM32L071硬件I2C挂死
STM32的IIC问题一直存在,在网上也被很多人吐槽,然而FAE告诉我,硬件IIC的问题在F1,F3,F4系列单片机存在,而在L0上已经解决了,然而这几天调试加密芯片和显示芯片,都是IIC芯片,却再一次证明,L0系列的IIC一样存在问题, FAE告诉我是我的配置问题,故写这篇文章,如果是我配置问题,希望得到高人指点,再次感激不尽. 配置代码: void MX_I2C1_Init(void) { hi2c1.Instance = I2C1; hi2c1.Init.Timing = 0x00707C
STM32 & FreeRTOS & KFIFO (巧夺天工)
巧夺天工 的 KFIFO ,用STM32实现. 实现源文件如下: /********************************************************** * * 文件名: kfifo.c * * 文件描述: 该文件包含的kfifo的处理函数 * * 创建人: GXP * * 创建日期: 2016年8月9日16:13:06 * * 版本号: 1.0 * * 修改记录: 无 * * 本文参考博客地址: http://blog.csdn.net/linyt/articl
STM32F10x_硬件I2C主从通信(轮询发送,中断接收)
Ⅰ.写在前面 关注我分享文章的朋友应该知道我在前面讲述过(软件.硬件)I2C主机控制从机EEPROM的例子.在I2C通信主机控制程序是比较常见的一种,可以说在实际项目中,很多应用都会使用到I2C通信.但在实际项目中作为I2C从机的应用相对要少的多,本文主要讲述关于[STM32F10x_硬件I2C主从通信]中STM32作为从机的例子. 在学习本问内容之前,如果对I2C协议还不太了解的朋友请先去了解一下I2C协议,或看我之前关于I2C通信的文章(我微信公众号和博客都有). 关于STM32硬件I2C作
STM32 CRC32与对应的软件CRC32(转)
源:STM32 CRC32与对应的软件CRC32 简单实现STM32 CRC32使用 使用前记得使能STM32 CRC时钟 //STM32硬件CRC32 byte数据计算,将数据移到最高位,低位补上FF u32 stm32_crc32_byte(u8 *pBuff, u32 len) { u32 i; u8 buff[]; u32 *p32 = (u32 *)buff; CRC->CR = ; //复位CRC寄存器 buff[] = buff[] = buff[] = buff[] = 0XFF
热门专题
谷歌浏览器不自动填充密码
canvas画可移动飞机模型
GNU4.9不用alloc
centos系统转发
epoll 和半连接队列和accept队列
qtoolbutton字和图标居中
mac source 没有了
利用SQL生成序列号
rider关闭自动保存
ora-01747解决方法
easyui前端排序 java后端如何接收
arcmap 文字 是放在什么图层
c# usercontrol 打开慢问题
ios disable 样式如何修改
emqx 忽略ssl java
Java 单元测试H2模拟数据库
c# StyleAttrCSSResolver添加css样式
改变linux终端目录颜色 PS
FX-3Uplc与上位机通讯方式
docker 创建的jenkins 安装插件失败