STM32_参考手册-中文.pdf 下载本文

SPI接口

位3 UDR:下溢标志位(Underrunflag)0:未发生下溢; 1:发生下溢。 该标志位由硬件置’1’,由一个软件序列清’0’,详见23.4.7节。 注:在SPI模式下不使用。 STM32F10xxx参考手册 位2 位1 CHSIDE:声道(Channelside)0:需要传输或者接收左声道; 1:需要传输或者接收右声道。 注:在SPI模式下不使用。在PCM模式下无意义。 TXE:发送缓冲为空(Transmitbufferempty)0:发送缓冲非空; 1:发送缓冲为空。 RXNE:接收缓冲非空(Receivebuffernotempty)0:接收缓冲为空; 1:接收缓冲非空。 位0

23.5.4 SPI数据寄存器(SPI_DR)

地址偏移:0x0C复位值:0x0000

15

14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

DR[15:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw DR[15:0]:数据寄存器(Dataregister) 待发送或者已经收到的数据

数据寄存器对应两个缓冲区:一个用于写(发送缓冲);另外一个用于读(接收缓冲)。写操作将 数据写到发送缓冲区;读操作将返回接收缓冲区里的数据。

对SPI模式的注释:根据SPI_CR1的DFF位对数据帧格式的选择,数据的发送和接收可以是8位 或者16位的。为保证正确的操作,需要在启用SPI之前就确定好数据帧格式。 对于8位的数据,缓冲器是8位的,发送和接收时只会用到SPI_DR[7:0]。在接收时,

SPI_DR[15:8]被强制为0。

对于16位的数据,缓冲器是16位的,发送和接收时会用到整个数据寄存器,即SPI_DR[15:0]。

位15:0

23.5.5 SPICRC多项式寄存器(SPI_CRCPR)(I2S模式下不使用)

地址偏移:0x10复位值:0x0007

15

14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

rw

CRCPOLY[15:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw 位15:0

CRCPOLY[15:0]:CRC多项式寄存器(CRCpolynomialregister) 该寄存器包含了CRC计算时用到的多项式。 其复位值为0x0007,根据应用可以设置其他数值。 注:在IS模式下不使用。

2

489/754

参照2009年12月RM0008ReferenceManual英文第10

版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新

版本

SPI接口

23.5.6 SPI RxCRC寄存器(SPI_RXCRCR)(I2S模式下不使用)

地址偏移:0x14复位值:0x0000

15 14 13 12 11 10 9 8 7 6 5 4 3 2 STM32F10xxx参考手册

1 0

r

RxCRC[15:0]

r r 位15:0

r r r r r r r r r r r r r RXCRC[15:0]:接收CRC寄存器 在启用CRC计算时,RXCRC[15:0]中包含了依据收到的字节计算的CRC数值。当在SPI_CR1 的CRCEN位写入’1’时,该寄存器被复位。CRC计算使用SPI_CRCPR中的多项式。

当数据帧格式被设置为8位时,仅低8位参与计算,并且按照CRC8的方法进行;当数据帧格式 为16位时,寄存器中的所有16位都参与计算,并且按照CRC16的标准。 注:当BSY标志为’1’时读该寄存器,将可能读到不正确的数值。 注:在IS模式下不使用。

2

23.5.7 SPI TxCRC寄存器(SPI_TXCRCR)

地址偏移:0x18复位值:0x0000

15

14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

r

TxCRC[15:0]

r r 位15:0

r r r r r r r r r r r r r TxCRC[15:0]:发送CRC寄存器 在启用CRC计算时,TXCRC[15:0]中包含了依据将要发送的字节计算的CRC数值。当在 SPI_CR1中的CRCEN位写入’1’时,该寄存器被复位。CRC计算使用SPI_CRCPR中的多项 式。

当数据帧格式被设置为8位时,仅低8位参与计算,并且按照CRC8的方法进行;当数据帧格式 为16位时,寄存器中的所有16个位都参与计算,并且按照CRC16的标准。 注:当BSY标志为’1’时读该寄存器,将可能读到不正确的数值。 注:在IS模式下不使用。

2

23.5.8 SPI_I2S配置寄存器(SPI_I2S_CFGR)

地址偏移:0x1C复位值:0x0000

15 14 13 12 11 I2SMrw 10 I2SE rw 9 8 7 6 5 4 3 CKPOL rw 2 1 0 CHLEN rw

保留 res

I2SCFG rw

PCM保留 SYNC rw res I2SSTD rw

DATLEN rw 位15:12 位11 保留位,硬件强制为0 I2SMOD:IS模式选择(ISmodeselection)0:选择SPI模式; 1:选择IS模式。注:该位只有在关闭了SPI或者IS时才能设置。 2222位10 I2SE:IS使能(ISenable)0:关闭IS; 1: IS使能。注:在SPI模式下不使用。 2222

490/754

参照2009年12月RM0008ReferenceManual英文第10

版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新

版本

SPI接口

位9:8 I2SCFG:IS模式设置(ISconfigurationmode) 00:从设备发送; 01:从设备接收; 10:主设备发送; 11:主设备接受。 注:该位只有在关闭了IS时才能设置。 在SPI模式下不使用。 222STM32F10xxx参考手册 位7 PCMSYNC:PCM帧同步(PCMframesynchronization)0:短帧同步; 1:长帧同步。 注: 该位只在I2SSTD = 11(使用PCM标准)时有意义。 在SPI模式下不使用。 保留位,硬件强制为0。 I2SSTD:IS标准选择(ISstandardselection) 200:IS飞利浦标准; 01: 高字节对齐标准(左对齐); 10:低字节对齐标准(右对齐); 11: PCM标准。 关于IS标准的细节,详见23.4.2节。 注:为了正确操作,只有在关闭了IS时才能设置该位。 在SPI模式下不使用。 2222位6 位5:4 位3 CKPOL:静止态时钟极性(Steadystateclockpolarity) 0:IS时钟静止态为低电平; 1:IS时钟静止态为高电平。 注:为了正确操作,该位只有在关闭了IS时才能设置。 在SPI模式下不使用。 222位2:1 DATLEN:待传输数据长度(Datalengthtobetransferred) 00:16位数据长度; 01:24位数据长度; 10:32位数据长度; 11:不允许。 注:为了正确操作,该位只有在关闭了IS时才能设置。 在SPI模式下不使用。 2位0 CHLEN:声道长度 (每个音频声道的数据位数) (Channel length (number of bits peraudio channel)) 0:16位宽; 1:32位宽。 只有在DATLEN=00时该位的写操作才有意义,否则声道长度都由硬件固定为32位。 注:为了正确操作,该位只有在关闭了IS时才能设置。 在SPI模式下不使用。 2

23.5.9 SPI_I2S预分频寄存器(SPI_I2SPR)

地址偏移:0x20复位值:0x0002

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

保留

MCKOE ODD rw rw I2SDIV rw 位15:10 保留位,硬件强制为0

491/754

参照2009年12月RM0008ReferenceManual英文第10

版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新

版本

SPI接口

位9 MCKOE:主设备时钟输出使能(Masterclockoutputenable)0:关闭主设备时钟输出; 2STM32F10xxx参考手册 1: 主设备时钟输出使能。注:为了正确操作,该位只有在关闭了IS时才能设置。仅在IS主设备模式下使用该位。在SPI模式下不使用。 位8 ODD:奇系数预分频(Oddfactorfortheprescaler)0:实际分频系数=I2SDIV*2; 1: 实际分频系数 = (I2SDIV * 2)+1。 参见23.4.3节。 注:为了正确操作,该位只有在关闭了IS时才能设置。仅在IS主设备模式下使用该位。在SPI模式下不使用。 位7:0 I2SDIV:IS线性预分频(ISlinearprescaler) 禁止设置I2SDIV [7:0] = 0或者I2SDIV [7:0] =1 参见23.4.3节。 注:为了正确操作,该位只有在关闭了IS时才能设置。仅在IS主设备模式下使用该位。在SPI模式下不使用。

222222223.5.10 SPI寄存器地址映象

表171 SPI寄存器列表及其复位值

偏移 寄存器 000h SPI_CR1 复位值 SPI_CR2 复位值 004h 保留 保留 0 0 0 008h SPI_SR 复位值 保留 保留 保留 保留 保留 DR[15:0] 00000 0 0000 0 0 0 0 0 保留 0 0 0 0 000000 00 CRCPOLY[15:0] 000000 RxCRC[15:0] 000000 TxCRC[15:0] PCMSYNC 保留 I2SCFG 00Ch 010h 014h 018h SPI_DR 复位值 SPI_CRCPR 复位值 SPI_RXCRCR 复位值 SPI_TXCRCR 复位值 000 0 0 1 1 1 0 0 0 0 0 I2SMOD I2SE DATLEN I2SSTD 0000000000000000 01Ch SPI_I2SCFGR 复位值 保留 CKPOL 020h SPI_I2SPR 复位值 保留 MCKOE ODD 0 0 00 0 00 0 00 0 I2SDIV

0 0 00000010 关于寄存器的起始地址,参见表1。

492/754

参照2009年12月RM0008ReferenceManual英文第10

版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新

版本

CHLEN TXE RXNE BSY OVR MODF CRCER SSOE TXDMAE RXDMAE 0 0 0 TXEIE RXNEIE ERRIE 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 BIDIMODE 15 BIDIOE 14 CRCEN 13 CRCNEXT 12 11 DFF RXOnly 10 9 SSM 8 SSI LSBFIRST 7 6 SPE 5 4 3 2 MSTR CPOL 1 CPHA 0 保留 BR[2:0] 0 0 0 0 0 0 0 0 0 0 000 0 0 0 1 0 I2C接口

STM32F10xxx参考手册

24

I2C接口

小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。

中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和

STM32F103xx微控制器。

大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。

互联型产品是指STM32F105xx和STM32F107xx微控制器。 除非特别说明,本章描述的模块适用于整个STM32F10xxx微控制器系列。

24.1

I2C简介

I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus2.0兼容。 I2C模块有多种用途,包括CRC码的生成和校验、SMBus(系统管理总线—

SystemManagementBus)和PMBus(电源管理总线—Power ManagementBus)。 根据特定设备的需要,可以使用DMA以减轻CPU的负担。

24.2

I2C主要特点

●并行总线/I2C总线协议转换器

●多主机功能:该模块既可做主设备也可做从设备 ●I2C主设备功能

─ 产生时钟

─ 产生起始和停止信号 ●I2C从设备功能

─ 可编程的I2C地址检测

─ 可响应2个从地址的双地址能力 ─ 停止位检测

●产生和检测7位/10位地址和广播呼叫 ●支持不同的通讯速度 ─ 标准速度(高达100kHz) ─ 快速(高达400kHz) ●状态标志:

发送器/接收器模式标志 字节发送结束标志 ─ I2C总线忙标志 ●错误标志

─ ─

─ 主模式时的仲裁丢失

─ 地址/数据传输后的应答(ACK)错误 ─ 检测到错位的起始或停止条件 ─ 禁止拉长时钟功能时的上溢或下溢 ●2个中断向量

─ 1个中断用于地址/数据通讯成功 ─ 1个中断用于错误 ●可选的拉长时钟功能 ●具单字节缓冲器的DMA

493/754

参照2009年12月RM0008ReferenceManual英文第10

版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新

版本