国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> STM32開發(fā)之STM32硬件IIC操作

STM32開發(fā)之STM32硬件IIC操作

關(guān)鍵字:STM32 單片機(jī) 作者:admin 來源:不詳 發(fā)布時間:2018-05-18  瀏覽:12

 STM32具有IIC接口,接口有以下主要特性

多主機(jī)功能:該模塊既可做主設(shè)備也可做從設(shè)備

主設(shè)備功能

C地址檢測

產(chǎn)生和檢測7位/10位地址和廣播呼叫

支持不同的通訊速度

狀態(tài)標(biāo)志:

發(fā)送器/接收器模式標(biāo)志

字節(jié)發(fā)送結(jié)束標(biāo)志

總線忙標(biāo)志

錯誤標(biāo)志

2個中斷向量

可選的拉長時鐘功能

具單字節(jié)緩沖器的DMA

雖然很多人說STM的硬件IIC不好用,但是對于這么一個設(shè)備去探索一下還是很有必要的,指不定哪天就用上了呢,

IIC借口一共有九個寄存器,比較重要的幾個寄存器分別如下

1. CR1

2.jpg


由這幾個位我們可以正常產(chǎn)生標(biāo)準(zhǔn)IIC的START條件STOP條件,ACK與NOACK

CR2

控制IIC的通行頻率

這兩位檢測IIC總線是否收到數(shù)據(jù)

4.jpg

1. 對于硬件IIC的初始化流程包括

1. 配置IO口,配置為GPIO_Mode_AF_OD模式

2. 選擇IIC模式

3. 選擇是否使能自動應(yīng)答以及設(shè)備地址長度

4. 設(shè)置IIC總線的傳輸速率

2. 硬件IIC的讀寫操作其實(shí)邏輯上和標(biāo)準(zhǔn)總線類似,也是發(fā)送地址等待ack發(fā)送數(shù)據(jù)等待ACK,但是因?yàn)橛杏布淖詣訁⑴c,所以我們不需要延時了

具體代碼如下

[cpp] view plain copyvoid HmcIICInit(void)

{

/*GPIO初始化*/

GPIO_InitTypeDef GPIO_InitStructure;

/* 配置硬件IIC需要的變量 */

I2C_InitTypeDef I2C_InitStructure;

/* 使能與 I2C1 有關(guān)的時鐘 */

RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB,ENABLE );

RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);

/* PB6-I2C1_SCL、PB7-I2C1_SDA*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;

GPIO_Init(GPIOB, &GPIO_InitStructure);

/*IIC外設(shè)初始化*/

/* I2C 配置 */

I2C_InitStructure.I2C_Mode = I2C_Mode_I2C ; //配置為普通IIC模式

//I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;

//I2C_InitStructure.I2C_OwnAddress1 = SlaveAddress;

I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; //使能自動應(yīng)答

I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;

I2C_InitStructure.I2C_ClockSpeed = 50000; //5K的速度?

/* I2C1 初始化 */

I2C_Init(I2C1, &I2C_InitStructure);

/* 使能 I2C1 */

I2C_Cmd (I2C1,ENABLE);

/*允許應(yīng)答模式*/

I2C_AcknowledgeConfig(I2C1, ENABLE);

}

void HmcByteWrite(u8 addr,u8 dataValue)

{

I2C_GenerateSTART(I2C1,ENABLE);

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_MODE_SELECT));

I2C_Send7bitAddress(I2C1,HMC_ADDR,I2C_Direction_Transmitter);

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));

I2C_SendData(I2C1,addr);

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED));

I2C_SendData(I2C1,dataValue);

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED));

I2C_GenerateSTOP(I2C1,ENABLE);

}

u8 HmcByteRead(u8 addr)

{

u8 dataValue;

while(I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY));

I2C_GenerateSTART(I2C1,ENABLE);//起始信號

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_MODE_SELECT));

I2C_Send7bitAddress(I2C1,HMC_ADDR,I2C_Direction_Transmitter);//發(fā)送設(shè)備地址+寫信號

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));//

I2C_Cmd(I2C1,ENABLE);

I2C_SendData(I2C1,addr);//發(fā)送存儲單元地址,從0開始

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED));

I2C_GenerateSTART(I2C1,ENABLE);//起始信號

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_MODE_SELECT));

I2C_Send7bitAddress(I2C1,HMC_ADDR,I2C_Direction_Receiver);//發(fā)送設(shè)備地址+讀信號

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));

I2C_AcknowledgeConfig(I2C1,DISABLE);

I2C_GenerateSTOP(I2C1,ENABLE);

while(!(I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_RECEIVED)));

dataValue=I2C_ReceiveData(I2C1);//讀出寄存器數(shù)據(jù)

return dataValue;

}

編輯:admin  最后修改時間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

欧美精品一区二区水蜜桃| 国产麻豆一线二线三线| 欧美精品久久99九九| 九九热九九热九九热九九热| 国产精品一区日韩欧美| 国产精品美女午夜视频| 国产性色精品福利在线观看| 中国日韩一级黄色大片| 少妇丰满a一区二区三区| 午夜精品一区二区av| 白白操白白在线免费观看 | 太香蕉久久国产精品视频| 日本不卡视频在线观看| 国产传媒免费观看视频| 国产欧洲亚洲日产一区二区| 国产色第一区不卡高清| 高清一区二区三区四区五区| 国产日韩欧美专区一区| 国产精品久久精品国产| 国产在线小视频你懂的| 日韩一区中文免费视频| 日本欧美一区二区三区高清| 亚洲日本中文字幕视频在线观看| 国产精品午夜福利免费阅读| 麻豆看片麻豆免费视频| 成人免费高清在线一区二区| 欧美精品专区一区二区| 国产av乱了乱了一区二区三区| 99精品国产一区二区青青| 国产欧美一区二区久久| 91精品欧美综合在ⅹ| 日韩欧美在线看一卡一卡| 人人爽夜夜爽夜夜爽精品视频| 黄片免费播放一区二区| 久久福利视频这里有精品| 国产亚洲精品香蕉视频播放| 99久久精品一区二区国产| 日本道播放一区二区三区| 东京不热免费观看日本| 国产精品人妻熟女毛片av久| 黑人巨大精品欧美一区二区区 |