前言1、I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。 2、具有三种传输模式:标准模式传输速率为100kbit/s ,快速模式为400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多I2C设            
                
         
            
            
            
            硬件原理IIC.h代码实现 #ifndef __DRIVER_I2C_H
 #define __DRIVER_I2C_H#include "stm32f1xx_hal.h"
/*********************
  * 引脚宏定义
 **********************/
 #define SCL_PIN         GPIO_PIN_10
 #define SDA_PIN            
                
         
            
            
            
            I2C / SCCB ControllerI2C (Inter-IC) /SCCB (Serial Camera Control Bus) is a two-wire serial interface.  The two signals are SCL and SDA. SCL is a clock signal that is driven by the master.  S            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-02-16 00:04:04
                            
                                134阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            
                    一什么是自动化测试 
 二移动自动化测试的流程 
 三移动自动化测试的优点 
 四移动自动化测试的缺点 
 五移动测试自动化框架Android 
 六Appium 
 我选择的是Appium为什么呢 
 Appium简介 
 Appium的要求 
 Appium概念 
 Appium的原理 
七什么是黑盒白盒测试一、什么是自动化测试 自动化测试是把以人为驱            
                
         
            
            
            
             Linux 下使用IIC总线 读写 EEPROM  by 韩大卫 @吉林师范大学
handawei@jusontech.com
                  转载请务必表明出处
******************* **********************************************
2012.7.16
1,本文给出了linux 下使用IIC总线读写EEP            
                
         
            
            
            
            # 详解K8S关键词【i2c_smbus_write_byte_data】使用方法
作为一名经验丰富的开发者,你一定知道在Kubernetes(K8S)中,有许多关键词和函数可以帮助我们解决各种问题。今天,我们要讨论的是关于I2C通信中的一个重要函数【i2c_smbus_write_byte_data】。这个函数通常用于在Linux系统中进行I2C通信时,向设备发送字节数据的操作。在本文中,我们            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-30 09:43:49
                            
                                575阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录前言一、建立工程二、编写和移植前期准备驱动部分修改三、使用和验证结论 (2022年1月22日重制)本文主要是移植带简单图形库的程序,如果只是实现DMA控制,建议看【0.96寸 OLED屏实现1500Fps的帧率】STM32 软件、硬件SPI、I2C驱动总结本文参考例程 提取码: sch3前言本文将介绍在STM32 HAL库下实现硬件IIC+DMA控制0.96寸 OLED屏,以及OLED图形库            
                
         
            
            
            
            一. 使用STM32CubeMX实现 IIC 通信打开STM32CubeMX,选择STM32103C8芯片,设置基本配置,设置时钟配置,打开USART1串口通信(使用轮询模式)。设置好之后,设置存储路径,选择所用IDE,然后点击GENERATE CODE创建工程,在弹出的open project打开工程进行全局编译。二. HAL库中IIC通信中断模式和DMA模式的重要函数1. 主设备发送数据到从设            
                
         
            
            
            
            3  i2c-dev3.1 概述之前在介绍I2C子系统时,提到过使用i2c-dev.c文件在应用程序中实现我们的I2C从设备驱动。不过,它实现的是一个虚拟,临时的i2c_client,随着设备文件的打开而产生,并随着设备文件的关闭而撤销。I2c-dev.c针对每个I2C适配器生成一个主设备号为89的设备文件,实现了i2c_driver的成员函数以及文件操作接口,所以i2c-dev.c的主            
                
         
            
            
            
            要写的内容好像有点标题党的意思。早上收到邮件让我在860x_irq里打log看是不是插下充电器时会收到中断。结果最后还是发生了一次没有收到中断的情况。这个问题有点纠结啊。具体是啥也没有必要写了。估计应该是硬件有缺陷。上午服务器买了三块硬盘,做了一个raid5,我把硬盘扩展到分区上去了。三个300G的,做个raid后变600G,幸好上次修改服务器的时候把/work工作分区做成了lvm,这次扩展起来方            
                
         
            
            
            
            下面的各个标题中的内容都是按照文档及各渠道的学习(主要看的是B站的江科大自化协)查询而记录的不同模块的最基本原理,没有多余的废话,一看就明白,每个实验都是上电通过OK的。由于复杂的操作都是由简单组合而成的,因此像网上的那些教程,比如跑马灯,动态数码管显示,本文均未给出具体代码,因为知道了如何去控制硬件,那上述操作就只需要处理代码逻辑就行了。所有的实验,原理都是基于单片机STC89C516,同系列的            
                
         
            
            
            
            #背景 其实这篇文章在很久之前就写过解决方法了。在经过不断的实践和深究后发现,硬件 I2C 死锁的问题在ST的官方手册中的勘误手册(errata)中早就提供解决方案,只是我没有重视官方的文档,一直在网络寻求帮助。即使已经有官方的解决方案,但是还有很多人(包括以前的我)在怀疑 STM32 系列的 I2C 有硬件 BUG。这也告诉我们:网上资源虽丰富,但还是得通过“金睛火眼”来辨别。讲真的,为了解决            
                
         
            
            
            
            开发环境MCU:STM32F103c8t6 开发工具:STM32CubeMX 使用板子参考原理图:STM32F103C8T6最小系统板开源链接PWM脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但宽度不一致的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出            
                
         
            
            
            
            注:此代码非常依赖编译器,环境不一样,效果也可能不一样,虽然效果可能不同,但底层原理不变,思路才是重中之重!这里本人使用的是vs2019编译器。 文章目录1. 正文1.1 代码运行结果1.2 调试过程1.3 发现死循环原因1.4 为什么i会改变?1.5 底层原理2. 总结 1. 正文这里有这样一段代码:int main()
{
    int i = 0;
    int arr[] = { 1,            
                
         
            
            
            
            I2C总线是飞利浦公司推出的一种串行总线,只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。每个接到I2C总线上的器件地址是唯一的。主机与其他器件间的数据传送可以是由主机发送数据到其他器件,这时候主机即为发送器。由总线上接收数据的器件则为接收器。常用的串行扩展总线有:I2C总线单总线SPI总线I2C总线的通信协议需要掌握以下6点:1.起始信号2.终止信号3.写数据4.读数据5.应答信号            
                
         
            
            
            
            HAL_I2C_Mem_Write()函数位于stm32fxx_hal_i2c.c文件的2432行,源代码对该函数的解释如下图HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pDat            
                
         
            
            
            
            I2C(Inter-Integrated Circuit BUS)是I2C BUS简称,中文为集成电路总线,是目前应用最广泛的总线之一,和IMX6ULL有些相关的是,恰巧该总线是NXP前身的PHILIPS设计。当前仍然是应用最广泛的总线协议之一。1 通用I2C协议介绍1)概述 I2C是一种串行通信总线,使用多主从架构,最初设计师为了让主板、嵌入式系统或手机用以连接低速周边设备而发展而来。在小数据量            
                
         
            
            
            
            文章目录1- I2C协议介绍(1)I2C协议简介(2)I2C从设备地址2- I2C通信时序(1)起始位(2)读写地址(3)I2C应答信号(4)数据位发送与接收3- I2C协议主机收发数据流程(1)主机发送数据(2)主机接收数据4- SHT30传感器介绍(1)SHT30简介(2)SHT30工作原理5- HAL库中I2C发送接收数据函数(1)HAL_I2C_Master_Transmit()(2)H            
                
         
            
            
            
            先来点题外话~网上说STM32F103的IIC有瑕疵!就当是有些短板吧, 
个人觉得,用起来肯定没问题,只是不好用。人家说ST公司考虑到专利问题,没按飞利浦的标准来。导致STM32的IIC使用起来非常繁杂。下面就讲讲用STM32 IO口模拟IIC的注意问题:       IIC总线时序: 
 我就因为没理解好应答,吃了亏。讲一讲IIC的几个重要状态            
                
         
            
            
            
            文章目录10 bit地址写操作组合操作10位地址中的保留地址1.广播寻址2.Start Byte3.Bus clear   10 bit地址I2C总线中使用10位地址扩展了7位地址位数,但是10位地址和7位地址的设备可以连接到相同的I2C总线中,并且7位和10位地址均可以在所有总线速度模式中使用。在产生开始条件或重复开始后,紧跟其后产生10位地址。10位地址要占据两个字节。第一个字节中,前7位是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-11 17:32:43
                            
                                138阅读
                            
                                                                             
                 
                
                                
                    