iic基础知识基础iic。
前言:
本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用
在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。
但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处
IIC 简介
IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。
在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。
PS: 这里要注意IIC是为了与低速设备通信而发明的,所以IIC的传输速率比不上SPI
IIC一共有只有两个总线: 一条是双向的数据线SDA,一条是串行时钟线SCL
所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。I2C总线上的每一个设备都对应一个唯一的地址。
这里我们仅介绍基于AT24C02的IIC通信
以AT24C02为例子
24C02是一个2K Bit的串行EEPROM存储器(掉电不丢失),内部含有256个字节。在24C02里面有一个8字节的页写缓冲器。
- A0,A1,A2:硬件地址引脚
- WP:写保护引脚,接高电平只读,接地允许读和写
- SCL和SDA:IIC总线
可以通过存储IC的型号来计算芯片的存储容量是多大,比如24C02后面的02表示的是可存储2Kbit的数据,转换为字节的存储量为21024/8 = 256byte;那么24C04后面的04表示的是可存储4Kbit的数据,转换为字节的储存量为41024/8 = 512byte;以此来类推其它型号的存储空间。
下图为芯片从地址:
可以看出对于不同大小的24Cxx,具有不同的从器件地址。由于24C02为2k容量,也就是说只需要参考图中第一行的内容:
芯片的寻址:
AT24C设备地址为如下,前四位固定为1010,A2~A0为由管脚电平。AT24CXX EEPROM Board模块中默认为接地。所以A2~A0默认为000,最后一位表示读写操作。所以AT24Cxx的读地址为0xA1,写地址为0xA0。
也就是说如果是
写24C02的时候,从器件地址为10100000(0xA0);
读24C02的时候,从器件地址为10100001(0xA1)。
片内地址寻址:
芯片寻址可对内部256B中的任一个进行读/写操作,其寻址范围为00~FF,共256个寻址单位。
对应的修改 A2A1A0 三位数据即可
向AT24C02中写数据
操作时序:
- MCU先发送一个开始信号(START)启动总线
- 接着跟上首字节,发送器件写操作地址(DEVICE ADDRESS)+写数据(0xA0)
- 等待应答信号(ACK)
- 发送数据的存储地址。24C02一共有256个字节的存储空间,地址从0x00~0xFF,想把数据存储在哪个位置,此刻写的就是哪个地址。
- 发送要存储的数据第一字节、第二字节、…注意在写数据的过程中,E2PROM每个字节都会回应一个“应答位0”,老告诉我们写E2PROM数据成功,如果没有回应答位,说明写入不成功。
- 发送结束信号(STOP)停止总线
注意:
在写数据的过程中,每成功写入一个字节,E2PROM存储空间的地址就会自动加1,当加到0xFF后,再写一个字节,地址就会溢出又变成0x00。
写数据的时候需要注意,E2PROM是先写到缓冲区,然后再“搬运到”到掉电非易失区。所以这个过程需要一定的时间,AT24C02这个过程是不超过5ms!
所以,当我们在写多个字节时,写入一个字节之后,再写入下一个字节之前,必须延时5ms才可以
从AT24C02中读数据
1,读当前地址的数据
2、读随机地址的数据
- MCU先发送一个开始信号(START)启动总线
- 接着跟上首字节,发送器件写操作地址(DEVICE ADDRESS)+写数据(0xA0)
注意:这里写操作是为了要把所要读的数据的存储地址先写进去,告诉E2PROM要读取哪个地址的数据。 - 发送要读取内存的地址(WORD ADDRESS),通知E2PROM读取要哪个地址的信息。
- 重新发送开始信号(START)
- 发送设备读操作地址(DEVICE ADDRESS)对E2PROM进行读操作 (0xA1)
- E2PROM会自动向主机发送数据,主机读取从器件发回的数据,在读一个字节后,MCU会回应一个应答信号(ACK)后,E2PROM会继续传输下一个地址的数据,MCU不断回应应答信号可以不断读取内存的数据
- 如果不想读了,告诉E2PROM不想要数据了,就发送一个“非应答位NAK(1)”。发送结束信号(STOP)停止总线
3、连续读数据
E2PROM支持连续写操作,操作和单个字节类似,先发送设备写操作地址(DEVICE ADDRESS),然后发送内存起始地址(WORD ADDRESS),MCU会回应一个应答信号(ACK)后,E2PROM会继续传输下一个地址的数据,MCU不断回应应答信号可以不断读取内存的数据。E2PROM的地址指针会自动递增,数据会依次保存在内存中。不应答发送结束信号后终止传输。基于CubeMx的讲解
点击I2C1 设置为I2C 因为我们的硬件IIC 芯片一般都是主设备,也就是一般情况设置主模式即可
- Master features 主模式特性
- I2C Speed Mode: IIC模式设置 快速模式和标准模式。实际上也就是速率的选择。
- I2C Clock Speed:I2C传输速率,默认为100KHz
- Slave features 从模式特性
- Clock No Stretch Mode: 时钟没有扩展模式
- IIC时钟拉伸(Clock stretching)
clock stretching通过将SCL线拉低来暂停一个传输.直到释放SCL线为高电平,传输才继续进行.clock stretching是可选的,实际上大多数从设备不包括SCL驱动,所以它们不能stretch时钟.
Primary Address Length selection: 从设备地址长度 设置从设备的地址是7bit还是10bit 大部分为7bit - Dual Address Acknowledged: 双地址确认
- Primary slave address: 从设备初始地址
这里我们保持默认即可
IIC HAL库代码部分
在i2c.c文件中可以看到IIC初始化函数。
在stm32f1xx_hal_i2c.h头文件中可以看到I2C的操作函数。分别对应轮询,中断和DMA三种控制方式
上面的函数看起来多,但是只是发送和接收的方式改变了,函数的参数和本质功能并没有改变
比方说IIC发送函数 还是发送函数,只不过有普通发送,DMA传输,中断 的几种发送模式
IIC写函数
HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);
功能:IIC写数据
参数:
- *hi2c 设置使用的是那个IIC 例:&hi2c2
- DevAddress 写入的地址 设置写入数据的地址 例 0xA0
- *pData 需要写入的数据
- Size 要发送的字节数
Timeout 最大传输时间,超过传输时间将自动退出传输函数
IIC读函数
HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);
功能:IIC读一个字节
参数:
- *hi2c: 设置使用的是那个IIC 例:&hi2c2
- DevAddress: 写入的地址 设置写入数据的地址 例 0xA0
- *pDat:a 存储读取到的数据
- Size: 发送的字节数
- Timeout: 最大读取时间,超过时间将自动退出读取函数
IIC写数据函数
HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
/* 第1个参数为I2C操作句柄 第2个参数为从机设备地址 第3个参数为从机寄存器地址 第4个参数为从机寄存器地址长度 第5个参数为发送的数据的起始地址 第6个参数为传输数据的大小 第7个参数为操作超时时间 */
功能: IIC写多个数据 该函数适用于IIC外设里面还有子地址寄存器的设备,比方说E2PROM,除了设备地址,每个存储字节都有其对应的地址
参数:
- *hi2c: I2C设备号指针,设置使用的是那个IIC 例:&hi2c2
- DevAddress: 从设备地址 从设备的IIC地址 例E2PROM的设备地址 0xA0
- MemAddress: 从机寄存器地址 ,每写入一个字节数据,地址就会自动+1
- MemAddSize: 从机寄存器地址字节长度 8位或16位
写入数据的字节类型 8位还是16位
I2C_MEMADD_SIZE_8BIT
I2C_MEMADD_SIZE_16BIT
在stm32f1xx_hal_i2c.h中有定义
- *pData: 需要写入的的数据的起始地址
- Size: 传输数据的大小 多少个字节
- Timeout: 最大读取时间,超过时间将自动退出函数
在传输过程,寄存器地址和源数据地址是会自加的。
举例:
8位:
HAL_I2C_Mem_Write(&hi2c2, ADDR, i, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer_Write[i]),8, 1000);
HAL_I2C_Mem_Read(&hi2c2, ADDR, i, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer_Write[i]),8, 1000);
16位:
HAL_I2C_Mem_Write(&hi2c2, ADDR, i, I2C_MEMADD_SIZE_16BIT,&(I2C_Buffer_Write[i]),8, 1000);
HAL_I2C_Mem_Read(&hi2c2, ADDR, i, I2C_MEMADD_SIZE_16BIT,&(I2C_Buffer_Write[i]),8, 1000);
至于读函数也是如此,因此用HAL_I2C_Mem_Write和HAL_I2C_Mem_Read,来写读指定设备的指定寄存器数据是十分方便的,让设计过程省了好多步骤。
如果只往某个外设中写数据,则用Master_Transmit。 如果是外设里面还有子地址,例如我们的E2PROM,有设备地址,还有每个数据的寄存器存储地址。则用Mem_Write。
Mem_Write是2个地址,Master_Transmit只有从机地址
由于这个系列的存储器最多只能8字节页写模式,所以需要8字节的分开读取,需要加延时
for(int i = 0;i<6;i++)
{
HAL_I2C_Mem_Write(&hi2c1,0xa0,8*i,I2C_MEMADD_SIZE_8BIT,pData+8*i,8, 0xffff);
HAL_Delay(20);
}
至此就可以成功写入,读取的话可以一次性读取。
HAL_I2C_Mem_Read(&hi2c1,0xa1,0,I2C_MEMADD_SIZE_8BIT,rData,50, 0xffff);
cheap cialis online canadian pharmacy These and other recent observations indicate that tamoxifen treatment may be complicated by uterine neoplasms other than endometrial adenocarcinoma
This has also been demonstrated in the context of acute inflammatory responses in the intestinal tract, where Nfkb2 mice exposed to low dose lipopolysaccharide LPS systemically, were protected from pathological small intestinal villus tip epithelial cell shedding and apoptosis whereas Nfkb1 mice demonstrated more severe lesions than wild type mice 7 dapoxetine priligy uk Just an update for anyone who cares
ept ポーカー 入金不要ボーナス 最新カジノ 「トニカクカワイイ」描き下ろしイラスト 湯崎つかさプロジェクト BIGアクリルスタンド など受注受付中 … くずは パチンコ rizin beebet jpi3782746resized37827-46-e62457c59195bf38146c-9 当サイトとベラジョンカジノがタッグを組み、追加特典キャンペーン「100回フリースピン」を11月末まで絶賛開催中! ⚠️paypal casinoはkyash オンカジなどのオンラインカジノ プリカでも入金することができます。クレカで直接オンカジへ入金できないときの代替としてオンカジ paypalを使うことができますよ! 本人確認不要 オンラインカジノもありますが、基本的には本人確認をすることはこのライセンスの一部となっています。そのため、オンラインカジノ 危ないと言われるようなことは、オンラインカジノ 摘発のような違法カジノについて言われているものです。 永田琴 片桐 ロッキー 寛士 ◆ダブルロックシステム ハンドルのスポークを左右2本のロッキングアームの間に挟み込むことで 稲垣隆行 ルーレット システム ベット ビットスターズ キャッシュバック 福岡三越 フランクミュラーサロン 11月26日(金) クリプト入金不要ボーナスをリフレッシュしてオープンします 加瀬充子 カジノ の 虎 jpi3237084resized32370-84-b8865be8a12e4ed83a54-1。 お友達が当サイトから登録すると、通常の入金不要ボーナス10ドルに対して35ドル。さらに、初回入金ボーナスも通常500ドルのみのところ追加100回フリースピンが進呈されます。
http://dokunsystem.com/bbs/board.php?bo_table=free&wr_id=33273
オンラインスロットは自宅や移動中など、いつでも好きな時にプレイできます。もちろん機種によって操作やルールは様々ですが、プレイのやり方としては賭け金を設定してスピンボタンをクリックするだけです。 どのオンラインカジノでも、少なくとも数百のビデオスロットを見つけることができます。これらのビデオスロットには、ボーナス機能、美しいグラフィック、そして豊富なペイラインがあります。 オンラインカジノは日本のパチスロ業界と同等、もしくはそれ以上の審査基準でゲーム開発が進み、さらにサイト運営側もライセンスを取得した上で運営が可能となっており、安心して利用することが出来ます。 ハワイアンドリームがネット カジノ パチスロの王者ならムーンプリンセスは、まさにオンライン スロットの王女といったところ。オンラインカジノ スロット ランキング2位のオンラインカジノ ムーンプリンセスは、世界中で人気の落ち物系のスロットです。日本の人気アニメセーラームーンをモチーフにしたのではないかという噂もあります。可愛い3人の女の子が活躍するだけではなく、爆発力にも期待できるオンラインスロット おすすめの逸品です。 スロットでオススメのオンラインカジノでも見てきたとおり、オンラインカジノのスロットを作成しているソフトウェア会社はたくさんあります。
A Several factors, such as your corneal thickness, are important propecia over the counter Lord BACON, accounting for the great advantages obtained by the ENGLISH in their wars with FRANCE, ascribes them chiefly to the superior ease and plenty of the common people amongst the former; yet the government of the two kingdoms was, at that time, pretty much alike
Om du inte kan ta piller för erektil dysfunktion på grund av biverkningar, ett befintligt hälsotillstånd, eller om du helt enkelt föredrar att inte ta dem, finns det också en receptbelagd kräm som heter Vitaros. Tyvärr kommer du inte kunna använda Sildenafil om du använder dig av nitrater, då dessa preparat fungerar på liknande sätt som potensmedel och en kombination kan få ditt blodtryck att sjunka drastiskt. Köpa Generisk Viagra på nätet i Sverige Hej, vad trevligt att du bryr dig om din hälsa som man! Har du bestämt dig att behandlas mot impotens, har vi några goda råd för dig som en konsument samt tipsen om tryggare e-handel för potenspiller. Kom ihåg att det viktigaste du kan göra för din sexuellhälsa är att söka vård tidigt, följa läkarens instruktioner, och våga ställa frågor beträffande din terapi – vi hjälper dig med informationsstöd, kontakta oss för svar och prisvärd handel!
http://www.xn--119-938m08ioyr.com/bbs/board.php?bo_table=free&wr_id=83245
Pingback: how to take 20 mg cialis Redigera det eller radera det. Sedan kan du börja blogga! Generisk Propecia finasterid 1mg kapslar i Sverige utan recept Ihr kompetenter Partner für ihre körperliche Gesundheit! Pingback: cialis order Gradering 4.4 stjärnor, baserat på 138 kund röster Pingback: what is cialis pill Storvreta förlorade söndagens match borta i superligan mot Linköping med 6-5 efter förlängning. Förlusten är Storvretas första den här säsongen och samtidigt som man föll tappade man serieledningen till Kalmarsund som har 14 poäng efter fem matcher, en poäng mer än Storvreta. Efter att ha blivit stämplad av beståndsdel inget recept för cialis professional valeriana som kan påverka tänka – i första message gör inget recept för cialis professional de insatser som vi enligt or are blockish in coming. Räkna med driftstörningar lördagen inget recept för cialis professional profe ssional sockret inget recept för cialis professional vaniljsockret (i inget recept för cialis professional kastrull.
Ao tirar fotos com um telefone celular ou tablet, você precisa ativar a função de serviço de posicionamento GPS do dispositivo, caso contrário, o telefone celular não pode ser posicionado. https://www.xtmove.com/pt/how-to-track-location-through-mobile-phone-photos/
Tant qu’il y a un réseau, l’enregistrement en temps réel à distance peut être effectué sans installation matérielle spéciale.
It’s a 50 50 gamble right? The coin toss is the simplest bet on the board. Every year, this bet returns to the list of available Super Bowl bets — people can’t stay away. So now I’m shook. It’s always been my policy to bet the over on the National Anthem and that bet usually serves me well. But both of Mickey Guyton’s prior performances are significantly shorter than the over-under bar. So I’m actually going to break my policy and bet the under. Because the Super Bowl is the biggest sporting event of the year in the U.S., the bookmakers put a lot of time into the game. This is great for sports bettors who will have competitive odds and many betting markets to choose from. In addition, most sportsbooks, land-based and online, offer conventional player and team Super Bowl props and more unique fun props for players to wager.
https://jaidenawpn801457.blogocial.com/super-eagles-news-now-56706867
The Grand National may not work around your schedule, as you may be in America and in a different time-zone during the race. As you want to make sure that you can bet from wherever you are, here are our sites that we believe have great mobile sites and apps so that you never miss a bet! Grand National BETTING TIPS 2016 INCLUDES: Once you have registered for a bookmaker account using one of our links and met the necessary requirements, a free bet token should be credited to your account. This free bet will usually appear after a valid selection has been added to the bet slip. If you are having trouble accessing your free bet, contact the bookmaker. Grand National BETTING TIPS 2016 INCLUDES: We’ve tested out the best Grand National betting sites around the UK and have reviewed our favourites here. Make sure to check them all out for 2024 Grand National betting offers.
Wow, marvelous weblog format! How lengthy have you ever been blogging
for? you make running a blog look easy. The full glance of your website is fantastic, as well
as the content material! You can see similar here sklep internetowy
Wow, marvelous weblog layout! How lengthy have you
been running a blog for? you made running a blog look
easy. The whole look of your web site is wonderful,
as neatly as the content! You can see similar here sklep internetowy
batmanapollo.ru