STM32_IIC_AT24C02_1_芯片简介即管脚配置

        STM32的IIC总线是存在bug,感兴趣的可以上网搜一搜。我们可以使用两个I/O口和软件的方式来模拟stm32的iic总线的控制,所以就不需要使用stm32的硬件控制器了,同理数据手册中的I2C库函数也没有用了。   

        ROM(只读存储器)和RAM(随机存储器)是计算机中常见的两种存储器。它们在功能和特点上有很多区别。

1. 可擦写性:ROM是只读存储器,它的内容在生产过程中被固化,不能被修改或擦除。而RAM是可读写存储器,可以随时修改和擦除其内容。

2. 数据保存:ROM在断电时可以长久保存其中的数据,而RAM需要持续供电以保持数据的存储。

3. 访问速度:由于ROM中的数据是固化的,所以访问速度较快。而RAM中的数据可以随时被修改,所以访问速度相对较慢。

4. 存储容量:ROM的存储容量较大,可以存储大量的数据和程序。而RAM的存储容量相对较小。

5. 用途:ROM主要用于存储计算机的固件和操作系统等重要程序,如BIOS。而RAM则主要用于存储程序和数据,以供CPU进行读写操作。

        总之,ROM是只读存储器,内容不能修改,访问速度快,存储容量大,适用于存储固化的数据和程序;而RAM是可读写存储器,内容可以随时修改,访问速度相对较慢,存储容量较小,适用于临时存储数据和程序。

        EEPROM:可读可擦除。这个EEPROM是很有用的,例如:

        写了一个程序到板子中让一个电机转动,可以通过上位机的设置去改变它的电机转动频率。A地需要电机500rad/min,B地需要电机200rad/min。因为板子的程序是固定的,不能修改,所以我们只能通过上位机去给板子一个参数,改变他的转速。

 可以看到有SCL和SDA,分别为时钟线和数据线,所以IIC是同步串行通信。

从数据手册可以看到,A0-A2为地址输入,WP为写保护;

IIC和SPI在多外设的接线上是不同的,SPI每个外设都需要一个片选信号线,而IIC的所有外设都挂在这两个总线上,IIC通过A0-A2地址去选择外设;

R/W则是区分读操作还是写操作。

前面的1k,2k(2kbit)则是表示看芯片的内部存储空间,这里说的AT24C02,则是2K。

        查看STM32F103Cx管脚手册可以看到PB6:I2C1_SCL,PB7:I2C1_SDA。因为PB6连接时钟线,stm32必须一直输出高电平和低电平来控制读写,所以在配置的时候PB6就要为输出模式。而PB7为输入时,stm32读取AT24C02,PB7为输出时,stm32传输数据到AT24C02,所以可以把PB7的模式,来回改动,什么时候输入,就设置为输入,什么时候输出,就设置为输出。

#include "bsp_iic_at24c02.h"//PB6:SCL  PB7:SDA
void IIC_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_WriteBit(GPIOB, GPIO_Pin_6 | GPIO_Pin_7, Bit_RESET);
}
#ifndef __BSP_IIC_AT24C02_H__
#define __BSP_IIC_AT24C02_H__#include <stm32f10x.h>void IIC_Configuration(void);#endif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/700687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黄仁勋最新专访:机器人基础模型可能即将出现,新一代GPU性能超乎想象

最近&#xff0c;《连线》的记者采访了英伟达CEO黄仁勋。 记者表示&#xff0c;与Jensen Huang交流应该带有警告标签&#xff0c;因为这位Nvidia首席执行官对人工智能的发展方向如此投入&#xff0c;以至于在经过近 90 分钟的热烈交谈后&#xff0c;我&#xff08;指代本采访的…

blender快捷键记录

一、移动界面方式 1、shift 拖动界面 2、滚轮wheel 以世界原点为中心旋转 二、基本操作 1、s 方位键 放大缩小 2、g 方位键 移动方位 3、r 方位键 渲染方位 4、tab 切换编辑模式 5、衰减模式 g wheel 可以调整衰减圈范围大小 6、编辑模式 1、2、3 切换点 线 面 的…

276.【华为OD机试真题】矩阵匹配(二分法—JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-矩阵匹配二.解题思路三.题解代码Python题解代码…

【LeetCode】416. 分割等和子集(中等)——代码随想录算法训练营Day41

题目链接&#xff1a;416. 分割等和子集 题目描述 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#xff1a;true 解释&#x…

杰发科技AC7801——SRAM 错误检测纠正

0.概述 7801暂时无错误注入&#xff0c;无法直接进中断看错误情况&#xff0c;具体效果后续看7840的带错误注入的测试情况。 1.简介 2.特性 3.功能 4.调试 可以看到在库文件里面有ecc_sram的库。 在官方GPIO代码里面写了点测试代码 成功打开2bit中断 因为没有错误注入&#x…

Netdata:实时高分辨率监控工具 | 开源日报 No.173

netdata/netdata Stars: 63.9k License: GPL-3.0 Netdata 是一个监控工具&#xff0c;可以实时高分辨率地监视服务器、容器和应用程序。 以下是该项目的主要功能&#xff1a; 收集来自 800 多个整合方案的指标&#xff1a;操作系统指标、容器指标、虚拟机、硬件传感器等。实…

软件常见设计模式

设计模式 设计模式是为了解决在软件开发过程中遇到的某些问题而形成的思想。同一场景有多种设计模式可以应用&#xff0c;不同的模式有各自的优缺点&#xff0c;开发者可以基于自身需求选择合适的设计模式&#xff0c;去解决相应的工程难题。 良好的软件设计和架构&#xff0…

k8s的svc流量通过iptables和ipvs转发到pod的流程解析

文章目录 1. k8s的svc流量转发1.1 service 说明1.2 endpoints说明1.3 pod 说明1.4 svc流量转发的主要工作 2. iptables规则解析2.1 svc涉及的iptables链流程说明2.2 svc涉及的iptables规则实例2.2.1 KUBE-SERVICES规则链2.2.2 KUBE-SVC-EFPSQH5654KMWHJ5规则链2.2.3 KUBE-SEP-L…

css复习

盒模型相关&#xff1a; border&#xff1a;1px solid red (没有顺序) 单元格的border会发生重叠&#xff0c;如果不想要重叠设置 border-collapse:collapse (表示相邻边框合并在一起) padding padding影响盒子大小的好处使用 margin应用&#xff1a; 行内或行内块元素水…

windows Server下Let‘s Encrypt的SSL证书续期

一、手动续期方法&#xff1a; 暂停IIS服务器 --> 暂时关闭防火墙 --> 执行certbot renew --> 打开防火墙 --> 用OpenSSL将证书转换为PFX格式-->pfx文件导入到IIS --> IIS对应网站中绑定新证书 --> 重新启动IIS -->完成 1、暂停IIS服务器 2、暂时关闭…

【LeetCode每日一题】 单调栈的案例 42. 接雨水

这道题是困难&#xff0c;但是可以使用单调栈&#xff0c;非常简洁通俗。 关于单调栈可以参考单调栈总结以及Leetcode案例解读与复盘 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 …

命令记录学习

1. 查看当前用户 cat /etc/passwd 添加test用户 useradd test -G root 查看test用户状态 id test 查看用户adaminstrator passwd -S adaminstrator 禁用用户adaminstrator passwd -l adaminstrator 密码策略设置文件地址 vi /etc/pam.d/system-auth 设…

浅析SpringBoot框架常见未授权访问漏洞

文章目录 前言Swagger未授权访问RESTful API 设计风格swagger-ui 未授权访问swagger 接口批量探测 Springboot Actuator未授权访问数据利用未授权访问防御手段漏洞自动化检测工具 CVE-2022-22947 RCE漏洞原理分析与复现漏洞自动化利用工具 其他常见未授权访问Druid未授权访问漏…

私域运营-需要认清的事实

一、私域不能单纯依靠微信渠道 误区&#xff1a;很多企业仍停留在如何让用户在微信去分享裂变&#xff0c;然后带动新用户的阶段。 私域的核心在于“开源节流”&#xff0c;就是如何通过更多渠道获取更多客户&#xff0c;并且避免客户的批量流失。 私域讲究的是如何从公域的“…

【读博杂记】:近期日常240223

近期日常 最近莫名其妙&#xff0c;小导悄悄卷起来&#xff0c;说要早上八点半开始打卡&#xff0c;我感觉这是要针对我们在学校住的&#xff0c;想让我们自己妥协来这边租房子住&#xff0c;但我感觉这是在逼我养成规律作息啊&#xff01;现在基本上就是6~7点撤退&#xff0c;…

Oracle EBS FA折旧回滚的分录追溯

FA模块向子分类账和总账追溯分为两部分&#xff1a;事务表和折旧&#xff0c;但是FA相关表做其实关联计划外折旧的分录会被遗漏的原因&#xff1a; 如果已经当月折旧&#xff0c;运行完成折旧后&#xff0c;又进行了计划外折旧&#xff0c;因为计划折旧时又要区分【是否进行当月…

【Pytorch】各种维度变换函数总结

维度变换千万不要混着用&#xff0c;尤其是交换维度的transpose和更改观察视角的view或者reshape&#xff01;混用了以后虽然不会报错&#xff0c;但是数据是乱的, 建议用einops中的rearrange&#xff0c;符合人的直观&#xff0c;不容易出错。 一个例子&#xff1a; >>…

如何提高测试人员在公司的影响力?“小题大做”少不了!

背景:一件不太合理却又常见的小诉求 某天,一个新入职的运营人员在公司聊天软件里找到我,希望我团队的QA同学能在test环境给他介绍一下当前业务APP里的功能操作,提及了多个模块。 我把聊天内容转给我团队中的小H看,小H的反应是“这活儿也太杂了吧,连运营人员想了解业务…

Ubuntu20.04开启/禁用ipv6

文章目录 Ubuntu20.04开启/禁用ipv61.ipv62. 开启ipv6step1. 编辑sysctl.confstep2. 编辑网络接口配置文件 3. 禁用ipv6&#xff08;sysctl&#xff09;4. 禁用ipv6&#xff08;grub&#xff09;附&#xff1a;总结linux网络配置 Ubuntu20.04开启/禁用ipv6 1.ipv6 IP 是互联网…

C/C++ PrefixToNetmask、NetmaskToPrefix(网络掩码、Prefix 互转)

作用&#xff1a; Netmask&#xff1a;255.255.255.0 互转 Prefix&#xff1a;24 新实现&#xff1a; static int NetmaskToPrefix(unsigned char* bytes, int bytes_size) noexcept {if (NULL bytes || bytes_…