91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 22KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-05-29
  • 語言: 其他
  • 標簽: pcm5242??I2C源碼??

資源簡介

TI PCM5242 miniDSP配置源碼 簡易的I2C通信協議適用于STM8 STM32,源碼內含I2C協議代碼及PCM5242的源碼,想要學習的可以直接下載做簡單修改便可以啟動

資源截圖

代碼片段和文件信息


#include “stm32f0xx.h“
#include “defines.h“
#include “I2C_drv.h“
#include?“Delay.h“



GPIO_InitTypeDef?I2C_SDA_InitStr;

void?I2C_init(void)
{
GPIO_InitTypeDef?GPIO_InitStructure;

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB?ENABLE);?
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_6?|?GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_UP;
GPIO_Init(GPIOB?&GPIO_InitStructure);

}
void?SDA_Set_Out(void)
{
I2C_SDA_InitStr.GPIO_Pin?=?GPIO_Pin_7;
I2C_SDA_InitStr.GPIO_Mode?=?GPIO_Mode_OUT;
I2C_SDA_InitStr.GPIO_OType?=?GPIO_OType_PP;
I2C_SDA_InitStr.GPIO_Speed?=?GPIO_Speed_50MHz;
I2C_SDA_InitStr.GPIO_PuPd?=?GPIO_PuPd_UP;
GPIO_Init(GPIOB?&I2C_SDA_InitStr);
}

void?SDA_Set_Input(void)
{
I2C_SDA_InitStr.GPIO_Pin?=?GPIO_Pin_7;
I2C_SDA_InitStr.GPIO_Mode?=?GPIO_Mode_IN;
I2C_SDA_InitStr.GPIO_OType?=?GPIO_OType_PP;
I2C_SDA_InitStr.GPIO_Speed?=?GPIO_Speed_50MHz;
I2C_SDA_InitStr.GPIO_PuPd?=?GPIO_PuPd_UP;
GPIO_Init(GPIOB?&I2C_SDA_InitStr);
}



/////////////////////////////////////////////////////////////////

void?I2C_start(void)
{
SDA_Set_Out();
I2C_SDA(HIGH);? //?sda?high?firstly
I2C_SCL(HIGH);
delay_us(dly_time_clk);

I2C_SDA(LOW);
delay_us(dly_time_clk);
I2C_SCL(LOW);
delay_us(dly_time_clk);
}

void?I2C_stop(void)
{
SDA_Set_Out();
I2C_SDA(LOW);
I2C_SCL(LOW);
delay_us(dly_time_clk);

I2C_SCL(HIGH);
delay_us(dly_time_clk);
I2C_SDA(HIGH);
delay_us(dly_time_clk);
}

//?master?send?nack
void?I2C_nack(void)
{
I2C_SCL(LOW);
SDA_Set_Out();
I2C_SDA(HIGH);?
delay_us(dly_time_clk);
I2C_SCL(HIGH);

delay_us(dly_time_clk);
I2C_SCL(LOW);
}


void?I2C_ack(void)
{
I2C_SCL(LOW);
SDA_Set_Out();
I2C_SDA(LOW);
?? delay_us(dly_time_clk);
I2C_SCL(HIGH);
?? delay_us(dly_time_clk);
I2C_SCL(LOW);
}


unsigned?char?I2C_wait_ack(void)
{
unsigned?char?ErrTime=0;
SDA_Set_Input();?
I2C_SDA(HIGH);
?? delay_us(dly_time_clk);
I2C_SCL(HIGH);
?? delay_us(dly_time_clk);

while(I2C_READ_SDA)
{
ErrTime++;
if(ErrTime>250)
{
I2C_stop();
return?1;
}
}
I2C_SCL(LOW); ???
return?0;??
}

void?I2C_send_byte(unsigned?char?txd)
{
unsigned?char?n?=?8;
SDA_Set_Out();
I2C_SCL(LOW);
while?((n--)!=0)
{
if?((txd?&?0x80)!=0)
{
I2C_SDA(HIGH);
}
else
{
I2C_SDA(LOW);
}
txd?<<=?1;
delay_us(dly_time_clk);
I2C_SCL(HIGH);
delay_us(dly_time_clk);

I2C_SCL(LOW);? //?note:?scl?normal?low

delay_us(dly_time_clk);

}
}
? ????

unsigned?char?I2C_read_byte(unsigned?char?ack)
{
unsigned?char?i?=8?receive=0;
SDA_Set_Input();
???while?((i--)!=0)
{
????????I2C_SCL(LOW);
delay_us(dly_time_clk);
I2C_SCL(HIGH);
????????receive<<=1;
????????if(I2C_READ_SDA)?
receive++;???
delay_us(dly_time_clk);
????} ?
????if?(

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4796??2017-08-28?14:57??I2C_drv.c
?????文件????????1324??2017-08-21?11:22??I2C_drv.h
?????文件??????196483??2017-07-17?13:52??PCM5242.c
?????文件????????1973??2017-07-03?16:10??PCM5242.h

評論

共有 條評論