資源簡介
基于stm32的i2c通信程序源碼,里面整理了一些有關stm32的i2c的資料
代碼片段和文件信息
#include?“myiic.h“
#include?“delay.h“
////////////////////////////////////////////////////////////////////////////////// ?
//本程序只供學習使用,未經作者許可,不得用于其它任何用途
//ALIENTEK戰艦STM32開發板
//IIC驅動?代碼 ???
//正點原子@ALIENTEK
//技術論壇:www.openedv.com
//修改日期:2012/9/9
//版本:V1.0
//版權所有,盜版必究。
//Copyright(C)?廣州市星翼電子科技有限公司?2009-2019
//All?rights?reserved ??
//////////////////////////////////////////////////////////////////////////////////
?
//初始化IIC
void?IIC_Init(void)
{ ?????
GPIO_InitTypeDef?GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB?ENABLE?); //使能GPIOB時鐘
???
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP?;???//推挽輸出
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_Init(GPIOB?&GPIO_InitStructure);
GPIO_SetBits(GPIOBGPIO_Pin_6|GPIO_Pin_7);? //PB6PB7?輸出高
}
//產生IIC起始信號
void?IIC_Start(void)
{
SDA_OUT();?????//sda線輸出
IIC_SDA=1; ?? ??
IIC_SCL=1;
delay_us(4);
? IIC_SDA=0;//START:when?CLK?is?highDATA?change?form?high?to?low?
delay_us(4);
IIC_SCL=0;//鉗住I2C總線,準備發送或接收數據?
} ??
//產生IIC停止信號
void?IIC_Stop(void)
{
SDA_OUT();//sda線輸出
IIC_SCL=0;
IIC_SDA=0;//STOP:when?CLK?is?high?DATA?change?form?low?to?high
? delay_us(4);
IIC_SCL=1;?
IIC_SDA=1;//發送I2C總線結束信號
delay_us(4); ???
}
//等待應答信號到來
//返回值:1,接收應答失敗
//????????0,接收應答成功
u8?IIC_Wait_Ack(void)
{
u8?ucErrTime=0;
- 上一篇:會聲會影x5修復補丁
- 下一篇:2018年8月arrow病毒解碼工具
評論
共有 條評論