資源簡介
IIC 通訊代碼,通過結構傳遞端口信息,一個函數體,多組IO口

代碼片段和文件信息
#include?“bsp_iic.h“
//??在F4?168MHz??168*__nop()==1us
?void?I2C_Delay()
{
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();
}
I2C?*I2C_1?*I2C_2?*I2C_3;
void?I2C_GPIO_Config()??//端口初始化
{
I2C_1?=?(I2C?*)malloc(sizeof(I2C));?//MPU6050??HMC5883l
I2C_1->SCL_GPIOx?=?GPIOB;
I2C_1->SDA_GPIOx?=?GPIOB;
I2C_1->SCL_Pin?=?GPIO_Pin_8;
I2C_1->SDA_Pin?=?GPIO_Pin_9;
I2C_2?=?(I2C?*)malloc(sizeof(I2C));??//EEROM???氣壓計
I2C_2->SCL_GPIOx?=?GPIOB;
I2C_2->SDA_GPIOx?=?GPIOB;
I2C_2->SCL_Pin?=?GPIO_Pin_10;
I2C_2->SDA_Pin?=?GPIO_Pin_11;
I2C_3?=?(I2C?*)malloc(sizeof(I2C));??
I2C_3->SCL_GPIOx?=?GPIOA;
I2C_3->SDA_GPIOx?=?GPIOC;
I2C_3->SCL_Pin?=?GPIO_Pin_8;
I2C_3->SDA_Pin?=?GPIO_Pin_9;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOBENABLE);
GPIO_InitTypeDef?GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin?=?GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStruct.GPIO_OType?=??GPIO_OType_OD;
GPIO_InitStruct.GPIO_Mode?=?GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_PuPd?=??GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed?=??GPIO_High_Speed;
GPIO_Init(GPIOB&GPIO_InitStruct);
I2C_Stop(I2C_1);
I2C_Stop(I2C_2);
I2C_Stop(I2C_3);
}
bool?I2C_Start(I2C?*?i2c)?//啟動時序程序
{
SDA_H;
SCL_H;??//SCL??保持不變
I2C_Delay();
SDA_L;??//SDA??被拉低
I2C_Delay();
SCL_L;??//SCL??被拉低??鉗住I2C總線,準備開始通訊
return?true;
}
bool?I2C_Stop(I2C?*?i2c)//停止時序
{
SCL_L;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6724??2018-11-05?15:00??IIC多端口\bsp_iic.c
?????文件???????1446??2018-11-05?14:56??IIC多端口\bsp_iic.h
?????目錄??????????0??2018-11-05?18:25??IIC多端口
-----------?---------??----------?-----??----
?????????????????8170????????????????????3
- 上一篇:程序員必學的1500個單詞
- 下一篇:csdn積分獲取
評論
共有 條評論