女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]I2C(Inter-Integrated Circuit)總線是一種兩線式串行總線,用于連接微控制器及其外圍設(shè)備。和SPI一樣,也是一種常用的串行通信方式。STM32微控制器提供硬件I2C,對它進行相應(yīng)配置就可以用來進行多個設(shè)備之間的通信

I2C(Inter-Integrated Circuit)總線是一種兩線式串行總線,用于連接微控制器及其外圍設(shè)備。和SPI一樣,也是一種常用的串行通信方式。

STM32微控制器提供硬件I2C,對它進行相應(yīng)配置就可以用來進行多個設(shè)備之間的通信。

使用步驟:

1. Enable peripheral clock

2. Enable SDA, SCL and SMBA (when used) GPIO clocks

3. Peripherals alternate function:? Call GPIO_Init() function.

4. Program the Mode, Timing , Own address, Ack and Acknowledged Address using the I2C_Init() function.

5. Enable the NVIC and the corresponding interrupt if you need to use interrupt mode.

7. When using the DMA mode Configure the DMA

8. Enable the I2C using the I2C_Cmd() function.

9. Enable the DMA when using DMA mode in the transfers.

基于STM32F3discovery開發(fā)板

MCU:STM32F303VC作為主機

從機”LSM303DLHC加速度計/磁強計

使用I2C1,引腳:PB6—I2C1_SCL,PB7—I2C1_SDA

代碼:

void I2C_Config(void)

{

I2C_InitTypeDef I2C_InitStructure;

GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHBPeriphClockCmd(I2C_GPIO_CLK, ENABLE);

RCC_APB1PeriphClockCmd(LSM303DLHC_I2C_CLK, ENABLE);


GPIO_PinAFConfig(I2C_GPIO_PORT, I2C_SCK_SOURCE, I2C_SCK_AF);

GPIO_PinAFConfig(I2C_GPIO_PORT, I2C_SDA_SOURCE, I2C_SDA_AF);


GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//GPIO_PuPd_DOWN;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;


GPIO_InitStructure.GPIO_Pin =I2C_SCK_PIN;

GPIO_Init(I2C_GPIO_PORT, &GPIO_InitStructure);


GPIO_InitStructure.GPIO_Pin =I2C_SDA_PIN;

GPIO_Init(I2C_GPIO_PORT, &GPIO_InitStructure);

I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;

I2C_InitStructure.I2C_AnalogFilter= I2C_AnalogFilter_Enable;

I2C_InitStructure.I2C_DigitalFilter= 0x00;

I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;

I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;

I2C_InitStructure.I2C_OwnAddress1=0x00;

I2C_InitStructure.I2C_Timing = 0x00902025;


I2C_Init(LSM303DLHC_I2C,&I2C_InitStructure);

I2C_Cmd(LSM303DLHC_I2C, ENABLE);

}


uint16_t LSM303DLHC_myRead(uint8_t DeviceAddr, uint8_t RegAddr, uint8_t* pBuffer, uint16_t NumByteToRead)

{

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_BUSY)!=RESET);

I2C_TransferHandling(LSM303DLHC_I2C,DeviceAddr,1,I2C_SoftEnd_Mode,I2C_Generate_Start_Write);

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_TXIS)==RESET);

if(NumByteToRead>1)

RegAddr |= 0x80; //讀多字節(jié)指令

I2C_SendData(LSM303DLHC_I2C,(u8)RegAddr);

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_TC));

I2C_TransferHandling(LSM303DLHC_I2C,DeviceAddr,NumByteToRead,I2C_AutoEnd_Mode,I2C_Generate_Start_Read);

while(NumByteToRead>0)

{

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_RXNE)==RESET);

*pBuffer = I2C_ReceiveData(LSM303DLHC_I2C);

pBuffer++;

NumByteToRead--;

}

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_STOPF)==RESET);

I2C_ClearFlag(LSM303DLHC_I2C,I2C_FLAG_STOPF);

return 1;

}


uint16_t LSM303DLHC_myWrite(uint8_t DeviceAddr, uint8_t RegAddr, uint8_t* pBuffer)

{

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_BUSY)!=0);

I2C_TransferHandling(LSM303DLHC_I2C,DeviceAddr,1,I2C_SoftEnd_Mode,I2C_Generate_Start_Write);

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_TXIS)==0);

I2C_SendData(LSM303DLHC_I2C,RegAddr);

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_TC)==0);

I2C_TransferHandling(LSM303DLHC_I2C,DeviceAddr,1,I2C_AutoEnd_Mode,I2C_Generate_Start_Write);

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_TXIS)==0);

I2C_SendData(LSM303DLHC_I2C,*pBuffer);

while(I2C_GetFlagStatus(LSM303DLHC_I2C,I2C_FLAG_STOPF)==0);

I2C_ClearFlag(LSM303DLHC_I2C,I2C_FLAG_STOPF);

return 1;

}

然后根據(jù)需要設(shè)置LSM303DLHC初始化參數(shù),就可以用上面的讀數(shù)據(jù)函數(shù)不斷讀取傳感器內(nèi)數(shù)據(jù)寄存器的值,進行后續(xù)數(shù)據(jù)處理。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

Sept. 10, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《全球電動車逆變器市場數(shù)據(jù)》,2025年第二季受惠純電動車(BEV)銷售成長,全球電動車(注1)牽引逆變器裝機量達766萬臺,年增19%。...

關(guān)鍵字: 增程式電動車 SiC 牽引逆變器

Sept. 8, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NVIDIA(英偉達) Blackwell平臺規(guī)模化出貨,以及北美CSP業(yè)者持續(xù)擴大布局General Server(通用型...

關(guān)鍵字: SSD DDR4 服務(wù)器

Sept. 4, 2025 ---- Apple(蘋果)即將發(fā)布iPhone 17、iPhone 17 Air(暫名)、iPhone 17 Pro及Pro Max四款旗艦新機,除了外觀辨識度升級,處理器性能、散熱和拍攝功...

關(guān)鍵字: iPhone 16 A19處理器 折疊機

Sept. 3, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《2025近眼顯示市場趨勢與技術(shù)分析》報告,2025年隨著國際品牌陸續(xù)推出AR眼鏡原型,以及Meta預(yù)計在近期發(fā)布AR眼鏡Celeste,市...

關(guān)鍵字: AR眼鏡 OLED

Sept. 2, 2025 ---- TrendForce集邦咨詢表示,2025年第二季DRAM產(chǎn)業(yè)因一般型DRAM (Conventional DRAM)合約價上漲、出貨量顯著增長,加上HBM出貨規(guī)模擴張,整體營收為3...

關(guān)鍵字: DRAM 智能手機 ASP

Sept. 1, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季因中國市場消費補貼引發(fā)的提前備貨效應(yīng),以及下半年智能手機、筆電/PC、Server新品所需帶動,整體晶圓代工產(chǎn)能利用率與出貨...

關(guān)鍵字: 晶圓代工 智能手機 筆電

Aug. 28, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NAND Flash產(chǎn)業(yè)雖面臨平均銷售價格(ASP)小幅下滑,所幸原廠減產(chǎn)策略緩解供需失衡,疊加中、美兩大市場政策推動,整體...

關(guān)鍵字: NAND Flash SSD AI

Aug. 26, 2025 ---- NVIDIA(英偉達)近日推出的Jetson Thor被視為機器人的物理智慧核心,以Blackwell GPU、128 GB記憶體堆疊出2070 FP4 TFLOPS AI算力,是前...

關(guān)鍵字: 機器人 大型語言模型 AI算力

Aug. 21, 2025 ---- 根據(jù)TrendForce集邦咨詢最新液冷產(chǎn)業(yè)研究,隨著NVIDIA GB200 NVL72機柜式服務(wù)器于2025年放量出貨,云端業(yè)者加速升級AI數(shù)據(jù)中心架構(gòu),促使液冷技術(shù)從早期試點邁...

關(guān)鍵字: AI 數(shù)據(jù)中心 服務(wù)器

除了充電電路外,鋰電池的放電過程也需要保護。鋰電池的放電電壓不能低于3.0V,否則電池壽命會大幅縮短。為了實現(xiàn)這一保護,工程師們設(shè)計了DW01芯片與8205 MOS管的電路組合。DW01芯片能夠監(jiān)控鋰電池的放電電壓和電流...

關(guān)鍵字: 鋰電池 電池
關(guān)閉