色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

 

基于華清遠見STM32f051的 IIC從模式實現(xiàn)方法

作者:盧老師,華清遠見教育科技集團講師。

在大多情況下,我們使用MCU控制傳感器,節(jié)點以及相關從設備,但在較為復雜的系統(tǒng)中,有時候也會使用MCU做為從設備。

下面是關于stm32f051的從模式實現(xiàn)方法,主要思路為從設備從中斷里面接受 IIC主設備發(fā)送的數(shù)據,并加以處理。

下圖為STM32F051的小系統(tǒng):

IIC從模式 GPIO的配置

根據原理圖查ST32F051的datasheet

配置引腳:

void I2C_GPIO_Configuration(void)
        {
                GPIO_InitTypeDefGPIO_InitStruct;
        
                /* Enable GPIOA clock */
                RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
                /*!< sEE_I2C Periph clock enable */
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1 , ENABLE);
                /*!< GPIO configuration */
                /*!< Configure sEE_I2C pins: SCL */
                GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;
                GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;//GPIO_Mode_IN
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
                GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;//open-drain
                GPIO_Init(GPIOB , &GPIO_InitStruct);
        
                /*!< Configure sEE_I2C pins: SDA */
                GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
                GPIO_Init(GPIOB , &GPIO_InitStruct);
        
                /* Connect PXx to I2C_SCL*/
                GPIO_PinAFConfig( GPIOB , GPIO_PinSource8, GPIO_AF_1);
                /* Connect PXx to I2C_SDA*/
                GPIO_PinAFConfig( GPIOB ,GPIO_PinSource9, GPIO_AF_1);
        }

IIC從模式配置,在配置時,需要設置地址,在這里設置為0XA0,而從設備的時鐘屬于被動模式,有IIC的主端確定。

void I2C_Configuration(void)
        {
                I2C_InitTypeDef I2C_InitStruct;
        
                /* I2C configuration */
                I2C_InitStruct.I2C_Mode = I2C_Mode_I2C;
                I2C_InitStruct.I2C_AnalogFilter = I2C_AnalogFilter_Enable;
                I2C_InitStruct.I2C_DigitalFilter = 0x00;
                I2C_InitStruct.I2C_OwnAddress1 =0xA0;
                I2C_InitStruct.I2C_Ack = I2C_Ack_Enable;
                I2C_InitStruct.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
                I2C_InitStruct.I2C_Timing = 0xb0420f13;//100Kbits
                /* I2C Peripheral Enable */
                I2C_Cmd(I2C1, ENABLE);
                /* Apply I2C configuration after enabling it */
                I2C_Init(I2C1, &I2C_InitStruct);
        }

下面是IIC中斷函數(shù)的實現(xiàn)

void I2C1_IRQHandler(void)
        {
                I2C_ClearITPendingBit(I2C1, I2C_ISR_ADDR|I2C_ISR_STOPF );
                if(I2C_GetITStatus( I2C1, I2C_IT_RXNE));
                {
                        I2Cbuf[I2C_IT_FLAG++]=I2C_ReceiveData(I2C1);
                }
        }

中斷函數(shù)里面,清中斷為2種,一種為IIC從地址校驗成功,一種是數(shù)據傳輸過程中停止。對于從設備,接受數(shù)據中斷才是我們需要的,這里我們將IIC接受的數(shù)據存入定義好的數(shù)組中,這樣以備后用,同是,在讀取接受數(shù)據時,硬件已經將接受數(shù)據的中斷清楚掉。

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 亚洲男人天堂久| 欧美大成色www永久网站婷| 国产在线久久久| 91精品久久久久久久久久入口| 成人伊人精品色xxxx视频| 91热福利电影| 亚洲人av在线影院| 欧美xxxx做受欧美.88| 欧美激情女人20p| 欧美在线观看网站| 国产日韩欧美91| 亚洲欧洲自拍偷拍| 大桥未久av一区二区三区| 欧美专区国产专区| 亚洲福利视频二区| 日韩中文av在线| 91国产美女视频| 亚洲综合色av| 菠萝蜜影院一区二区免费| 久久久在线观看| 成人性生交大片免费看视频直播| 日韩不卡中文字幕| 九九热99久久久国产盗摄| 午夜精品一区二区三区av| 国产欧美一区二区三区久久人妖 | 亚洲性夜色噜噜噜7777| 久久精品国产2020观看福利| 久久久人成影片一区二区三区| 国产精品亚洲视频在线观看| 在线看国产精品| 久久久久久久久久久久av| 成人做爽爽免费视频| 久久精品91久久久久久再现| 欧日韩不卡在线视频| 亚洲欧洲激情在线| 777777777亚洲妇女| 亚洲精品美女在线| 欧美激情视频在线观看| 亚洲精品国产综合久久| 欧美激情视频播放| 亚洲精品短视频|