日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

bq4050读固件_stm32f767 实现模拟SMBUS驱动bq4050

發(fā)布時(shí)間:2025/3/13 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bq4050读固件_stm32f767 实现模拟SMBUS驱动bq4050 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

#define SDA_IN() {GPIOB->MODER&=~(3<MODER|=0<<7*2;} //PB7輸入模式

#define SDA_OUT() {GPIOB->MODER&=~(3<MODER|=1<<7*2;} //PB7輸出模式

//IO操作

#define IIC_SCL(n) (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET)) //SCL

#define IIC_SDA(n) (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET)) //SDA

#define READ_SDA HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)    //輸入SDA

//IIC初始化

void IIC_Init(void)

{

GPIO_InitTypeDef GPIO_Initure;

__HAL_RCC_GPIOB_CLK_ENABLE(); //使能GPIOH時(shí)鐘

GPIO_Initure.Pin = GPIO_PIN_6|GPIO_PIN_7;

GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP; //推挽輸出

GPIO_Initure.Pull = GPIO_PULLUP; //上拉

GPIO_Initure.Speed = GPIO_SPEED_HIGH; //快速

HAL_GPIO_Init(GPIOB, &GPIO_Initure);

IIC_SDA(1);

IIC_SCL(1);

}

//產(chǎn)生IIC起始信號(hào)

void IIC_Start(void)

{

SDA_OUT(); //sda線輸出

IIC_SCL(0);

hrt_delay_us(2);

IIC_SDA(1);

hrt_delay_us(1);

IIC_SCL(1);

hrt_delay_us(9);

IIC_SDA(0);

hrt_delay_us(9);

IIC_SCL(0);//鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù)

}

//產(chǎn)生IIC停止信號(hào)

void IIC_Stop(void)

{

SDA_OUT(); //sda線輸出

IIC_SCL(0);

hrt_delay_us(1);

IIC_SDA(0); //STOP:when CLK is high DATA change form low to high

hrt_delay_us(9);

IIC_SCL(1);

hrt_delay_us(9);

IIC_SDA(1);//發(fā)送I2C總線結(jié)束信號(hào)

hrt_delay_us(9);

}

//等待應(yīng)答信號(hào)到來(lái)

//返回值:1,接收應(yīng)答失敗

// 0,接收應(yīng)答成功

uint8 IIC_Wait_Ack(void)

{

uint16 uErrTime=0;

SDA_IN(); //SDA設(shè)置為輸入

IIC_SDA(1);

hrt_delay_us(9);

IIC_SCL(1);

hrt_delay_us(9);

while(READ_SDA)

{

uErrTime++;

if(uErrTime > 250)

{

IIC_Stop();

return 1;

}

//hrt_delay_us(1);

}

IIC_SCL(0);//時(shí)鐘輸出0

hrt_delay_us(2);

return 0;

}

//產(chǎn)生ACK應(yīng)答

void IIC_Ack(void)

{

IIC_SCL(0);

SDA_OUT();

IIC_SDA(0);

hrt_delay_us(9);

IIC_SCL(1);

hrt_delay_us(9);

IIC_SCL(0);

}

//不產(chǎn)生ACK應(yīng)答

void IIC_NAck(void)

{

IIC_SCL(0);

SDA_OUT();

IIC_SDA(1);

hrt_delay_us(9);

IIC_SCL(1);

hrt_delay_us(9);

IIC_SCL(0);

}

//IIC發(fā)送一個(gè)字節(jié)

//返回從機(jī)有無(wú)應(yīng)答

//1,有應(yīng)答

//0,無(wú)應(yīng)答

void IIC_Send_Byte(uint8 txd)

{

uint8 t=0;

SDA_OUT();

IIC_SCL(0);//拉低時(shí)鐘開(kāi)始數(shù)據(jù)傳輸

for(t=0;t<8;t++)

{

IIC_SDA((txd&0x80)>>7);

txd <<= 1;

hrt_delay_us(8);

IIC_SCL(1);

hrt_delay_us(8);

IIC_SCL(0);

hrt_delay_us(8);

}

}

//讀1個(gè)字節(jié),ack=1時(shí),發(fā)送ACK,ack=0,發(fā)送nACK

uint8 IIC_Read_Byte(unsigned char ack)

{

unsigned char i;

unsigned charrecv=0;

SDA_IN();//SDA設(shè)置為輸入

for(i=0; i<8; i++)

{

IIC_SCL(0);

hrt_delay_us(12);

IIC_SCL(1);

recv <<= 1;

if(READ_SDA)

{

recv++;

}

hrt_delay_us(9);

}

return recv;

}void IIC_Write(unsigned char dat)

{

unsigned char t;

for(t=0; t<8; t++)

{

if(dat & 0x80)

{

IIC_SDA(1);

}

else

{

IIC_SDA(0);

}

delay_us(10);

IIC_SCL(1);

delay_us(10);

IIC_SCL(0);

delay_us(10);

dat <<= 1;

}

}

uint8 getBatteryInfo(uint8 slaveAddr, uint8 Comcode,uint8 *data, uint8 size)

{

uint8 ackFlag=0;

uint8_t buff[2];

IIC_Start();

IIC_Send_Byte(slaveAddr);//發(fā)送地址

IIC_Wait_Ack();

IIC_Send_Byte(Comcode);

IIC_Wait_Ack();

rt_thread_delay(1);

IIC_Start();

IIC_Send_Byte(slaveAddr+1);//發(fā)送地址

IIC_Wait_Ack();

rt_thread_delay(1);

while(size-1)

{

*data = IIC_Read_Byte(1);

IIC_Ack();

hrt_delay_us(10);

data++;

size--;

}

rt_thread_delay(1);

*data++ = IIC_Read_Byte(0);

IIC_Stop();

rt_thread_delay(5);

}

注意: 在SDA輸入輸出切換時(shí),最好使用寄存器操作!!!

總結(jié)

以上是生活随笔為你收集整理的bq4050读固件_stm32f767 实现模拟SMBUS驱动bq4050的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎成人精品永久免费av九九 | 久久精品欧美一区 | 天天综合永久入口 | 韩国av免费在线观看 | 青青草原国产在线观看 | 俺去日| 97免费看| 中文在线字幕观看 | 亚洲涩涩图 | 免费观看在线视频 | 少妇久久久 | 97久久久久久 | 你懂的在线网站 | 我的公把我弄高潮了视频 | 国产91嫩草 | 男女作爱网站 | 中文字幕人妻一区二区在线视频 | 国产ts丝袜人妖系列视频 | 夜夜躁狠狠躁日日躁 | 无码少妇一区二区三区芒果 | 激情在线观看视频 | 黄色片在线播放 | 欧美特级毛片 | 九九热在线免费观看 | 欧美 亚洲 另类 偷偷 自拍 | 国产精品久久久一区二区 | 午夜在线一区二区三区 | 成人国产在线 | 第一章豪妇荡乳黄淑珍 | 在线激情视频 | 一区二区日韩欧美 | 欧美资源在线观看 | 天天草夜夜操 | 成人午夜高清 | 国产一级片在线播放 | av每日更新| 日本做爰三级床戏 | 免费黄色欧美 | 动漫毛片 | 日本在线加勒比 | 啪啪网站视频 | 久久国产成人精品av | av在线免费观看一区 | 总裁边开会边做小娇妻h | 精品深夜av无码一区二区老年 | 91蜜桃网站 | 久久久久久久久97 | 色婷婷狠狠爱 | 国产一区二区三区福利 | 国产成人高清视频 | 欧美视频综合 | 丰满少妇中文字幕 | 自拍偷拍第5页 | 东凛在线观看 | 欧洲日韩一区二区三区 | 精品久久综合 | 色综合a| 日日夜夜操视频 | 日韩免费福利 | 伊人激情在线 | 中文字幕有码在线 | 美女av片| 国产精品美女久久久网av | 久久国产乱子伦精品 | 色哟哟网站 | 欧美在线观看视频一区二区 | 日日碰狠狠添天天爽无码 | 日韩一区二区三区四区 | 免费看欧美成人a片无码 | 操操操视频 | 欧美日韩一卡 | 国产成人h | 91亚洲一区二区三区 | 肉视频在线观看 | 国产一二三区精品 | 久久中文字幕一区 | 天天爱夜夜操 | 亚洲天堂一区二区三区四区 | 成人亚洲精品久久久久软件 | 在线观看成人免费 | 欧美人交a欧美精品 | 91免费版在线看 | 亚洲一区二区欧美 | 国产人成无码视频在线观看 | av在线播放网 | 男女免费观看视频 | 韩国91视频 | 国产区在线观看 | 成人3d动漫一区二区三区 | 在线免费视频一区二区 | 亚洲丝袜天堂 | 99久久亚洲精品 | 亚洲色图视频在线 | www.黄在线观看 | 色就是色欧美 | 黄色网址在线免费看 | 日本高清中文字幕 | 欧洲精品一区 | 精品无码在线视频 |