0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32入门学习笔记之EEPROM存储实验2

jf_78858299 来源:滑小稽笔记 作者:电子威廉希尔官方网站 园地 2023-02-16 14:22 次阅读

16.3 STM32内部IIC协议相关寄存器

16.3.1 控制寄存器1:I2Cx_CR1

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SWRST - ALERT PEC POS ACK STOP START NOSTRETCH ENGC ENPEC ENAPR SMBTYPE - SMBUS PE

Bit 15:软件复位

0:I2C模块不处于复位

1:I2C模块处于复位

Bit 13:SMBus提醒:软件可以设置或清除该位,当PE=0时,由硬件清除

0:释放SMBAlert引脚使其变高,提醒响应地址头紧跟在NACK信号后面

1:驱动SMBAlert引脚使其变低,提醒响应地址头紧跟在ACK信号后面

Bit 12:数据包出错检测

0:无PEC传输

1:PEC传输

Bit 11:应答/PEC位置

0:ACK位控制当前移位寄存器内正在接收的字节的ACK。PEC位表明当前移位寄存器内的字节是PEC

1:ACK位控制在移位寄存器里接收的下一个字节的ACK。PEC位表明在移位寄存器里接收的下一个字节是PEC

注1:POS位只能用在2字节的接收配置中,必须在接收数据之前配置

注2:为了NACK第2个字节,必须在清除ADDR为之后清除ACK位

注3:为了检测第2个字节的PEC,必须在配置了POS位之后,拉伸ADDR事件时设置PEC位

Bit 10:应答使能

0:无应答返回

1:在接收到一个字节后返回一个应答

Bit 9:停止条件产生

在主模式下:

0:无停止条件产生

1:在当前字节传输或在当前起始条件发出后产生停止条件

在从模式下:

0:无停止条件产生

1:在当前字节传输或释放SCL和SDA线

Bit 8:起始条件产生

在主模式下:

0:无起始条件产生

1:重复产生起始条件

在从模式下:

0:无起始条件产生

1:当总线空闲时,产生起始条件

Bit 7:禁止时钟延长

0:允许时钟延长

1:禁止时钟延长

Bit 6:广播呼叫使能

0:禁止广播呼叫,以非应答响应地址00h

1:允许广播呼叫,以应答响应地址00h

Bit 5:PEC使能

0:禁止PEC计算

1:开启PEC计算

Bit 4:ARP使能

0:禁止ARP

1:使能ARP

注1:如果SMBTYPE=0,使用SMBus设备的默认地址

注2:如果SMBTYPE=1,使用SMBus的主地址

Bit 3:SMBus类型

0:SMBus设备

1:SMBus主机

Bit 1:SMBus模式

0:I2C模式

1:SMBus模式

Bit 0:I2C模块使能

0:禁用I2C模块

1:启用I2C模块,根据SMBus位的设置,相应的I/O口需配置为复用功能

注:在主模式下,通讯结束之前,绝不能清除该位

16.3.2 控制寄存器2:I2Cx_CR2

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- LAST DMAEN ITBUFEN ITEVTEN ITERREN - FREQ[5:0]

Bit 12:DMA最后一次传输

0:下一次DMA的EOT不是最后的传输

1:下一次DMA的EOT是最后的传输

Bit 11:DMA请求使能

0:禁止DMA请求

1:当TxE=1或RxNE=1时,允许DMA请求

Bit 10:缓冲器中断使能

0:当TxE=1或RxNE=1时,不产生任何中断

1:当TxE=1或RxNE=1时,产生事件中断

Bit 9:事件中断使能

0:禁止事件中断

1:允许事件中断

在下列条件下,将产生该中断:

SB=1(主模式)

ADDR=1(主/从模式)

ADD10=1(主模式)

STOPF=1(从模式)

BTF=1,但是没有TxE或RxNE事件

如果ITBUFEN=1,TxE事件为1

如果ITBUFEN=1,RxNE事件为1

Bit 8:出错中断使能

0:禁止出错中断

1:允许出错中断

在下列条件下,将产生该中断:

BERR=1

ARLO=1

AF=1

OVR=1

PECERR=1

TIMEOUT=1

SMBAlert=1

Bit 5~Bit 0:I2C模块时钟频率,允许的范围在2~36MHz之间

000000:禁用

000001:禁用

000010:2MHz

...

100100:36MHz

大于100100:禁用

16.3.3 上升时间寄存器:I2Cx_TRISE

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- TRISE[5:0]

Bit 5~Bit 0:在快速/标准模式下的SCL最大上升时间(主模式)

例如:标准模式中最大允许SCL上升时间为1000ns。如果在I2C_CR2寄存器中FREQ中的值等于0x08且TPCLK1=125ns,故TRISE中必须写入09h(1000ns/125ns=8+1)

注:只有当PE=0时,才能设置TRISE

16.3.4 时钟控制寄存器:I2Cx_CCR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
F/S DUTY - CCR[11:0]

Bit 15:I2C主模式选项

0:标准模式的I2C

1:快速模式的I2C

Bit 14:快速模式时的占空比

0:快速模式下T low /T high =2

1:快速模式下T low /T high =16/9

Bit 11~Bit 0:快速/标准模式下的时钟控制分频系数(主模式)

在I2C标准模式或SMBus模式下:

T high =CCR×TPCLK1

T low =CCR×TPCLK1

在I2C快速模式下:

如果DUTY=0:

T high =CCR×TPCLK1

T low =2×CCR×TPCLK1

如果DUTY=1:

T high =9×CCR×TPCLK1

T low =16×CCR×TPCLK1

例如:在标准模式下,产生100kHz的SCL的频率,如果FREQR=08,TPCLK1=125ns,则CCR必须写入0x28(40×125ns=5000ns)

注1:允许设定的最小值为0x04,在快速DUTY模式下允许的最小值为0x01

注2:fCK应当是10MHz的整数倍,这样可以正确产生400kHz的快速时钟

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7492

    浏览量

    163836
  • EEPROM
    +关注

    关注

    9

    文章

    1020

    浏览量

    81605
  • 存储芯片
    +关注

    关注

    11

    文章

    897

    浏览量

    43146
收藏 人收藏

    评论

    相关推荐

    小白高手都适用,STM32学习教程(入门合集、自学笔记和例程)

    笔记:本书主要介绍ARM Cortex—M3系列STM32的原理及应用,全书共7章。第1章主要对STM32做基本介绍;第2章介绍ARM Cortex—M3内核架构的大致概况;第3章从外
    发表于 04-10 14:56

    CubeMX入门STM32 HAL库的学习笔记

    STM32CubeMX是ST官方开发的一款很好用的软件,主要用于STM32系列单片机的硬件驱动层的配置。网上也有一些关于STM32CubeMX的相关教程,对它的相关操作进行说明。从今天起,小柯希望能将自己从CubeMX
    发表于 08-17 06:55

    STM32入门学习笔记 精选资料分享

    STM32入门学习笔记本文为笔者入门学习过程的记录,只是零散的记录了一些个人不太懂得,觉得需要经
    发表于 08-24 07:56

    EEPROM开机记忆存储实验

    EEPROM开机记忆存储实验
    发表于 07-13 18:10 25次下载

    STM32各模块学习笔记

    STM32个模块学习笔记 目录 STM32笔记之一 中断优先级.......................................
    发表于 11-30 03:32 3160次阅读

    单片机学习EEPROM-IIC实验的资料合集免费下载

    本文档的主要内容详细介绍的是单片机学习EEPROM-IIC实验的资料合集免费下载。
    发表于 07-21 08:00 1次下载
    单片机<b class='flag-5'>学习</b><b class='flag-5'>之</b><b class='flag-5'>EEPROM</b>-IIC<b class='flag-5'>实验</b>的资料合集免费下载

    STM32F4 I2C-EEPROM实验例程

    STM32F4 I2C-EEPROM实验例程(嵌入式开发专业课程)-STM32F4 I2C-EEPROM
    发表于 07-30 16:02 19次下载
    <b class='flag-5'>STM32</b>F4 I<b class='flag-5'>2C-EEPROM</b><b class='flag-5'>实验</b>例程

    STM32学习笔记1——软硬件基础keil5编程与GPIO开发

    STM32学习笔记1——软硬件基础keil5编程与GPIO开发
    发表于 11-30 12:36 4次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>1——软硬件基础<b class='flag-5'>之</b>keil5编程与GPIO开发

    STM32学习I2C协议(读写EEPROM

    关于STM32学习分享第七章 I2C协议(读写EEPROM)文章目录关于STM32学习分享前言二
    发表于 11-30 15:21 32次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>学习</b><b class='flag-5'>之</b>I<b class='flag-5'>2</b>C协议(读写<b class='flag-5'>EEPROM</b>)

    STM32学习笔记:跑马灯实验

    跑马灯实验放寒假了,最近在学习STM32所以想写写一些笔记,刚刚好也能和大家分享一下学习心得体会,希望能够对和我一样在
    发表于 01-17 10:57 2次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>:跑马灯<b class='flag-5'>实验</b>

    STM32入门学习笔记EEPROM存储实验1

    EEPROM(Electrically Erasable Programmable read only memory),称为带电可擦除可编程只读存储器,是一种可以断电保存数据的存储芯片,EEP
    的头像 发表于 02-16 14:22 2395次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>入门</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b><b class='flag-5'>之</b><b class='flag-5'>EEPROM</b><b class='flag-5'>存储</b><b class='flag-5'>实验</b>1

    STM32入门学习笔记EEPROM存储实验3

    EEPROM(Electrically Erasable Programmable read only memory),称为带电可擦除可编程只读存储器,是一种可以断电保存数据的存储芯片,EEP
    的头像 发表于 02-16 14:22 1127次阅读

    STM32入门学习笔记EEPROM存储实验4

    EEPROM(Electrically Erasable Programmable read only memory),称为带电可擦除可编程只读存储器,是一种可以断电保存数据的存储芯片,EEP
    的头像 发表于 02-16 14:22 1531次阅读

    STM32入门学习笔记EEPROM存储实验5

    EEPROM(Electrically Erasable Programmable read only memory),称为带电可擦除可编程只读存储器,是一种可以断电保存数据的存储芯片,EEP
    的头像 发表于 02-16 14:23 627次阅读

    EEPROM存储实验

    可以在电脑上或专用设备上擦除已有信息,重新编程,一般用在即插即用设备中,这种存储芯片可以通过高于普通电压的作用来擦除或重写,EEPROM芯片一般用在需要频繁存储数据,但是数据量不大的场合,本
    的头像 发表于 03-01 14:54 9532次阅读
    <b class='flag-5'>EEPROM</b><b class='flag-5'>存储</b><b class='flag-5'>实验</b>