找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1193|回復(fù): 1
收起左側(cè)

問一下各位STM32單片機HAL庫讀取ds3231流程的問題

[復(fù)制鏈接]
ID:978416 發(fā)表于 2023-4-25 22:42 | 顯示全部樓層 |閱讀模式
void DS3231_WR_Byte(uint8_t addr,uint8_t bytedata)
{
        
        static uint8_t DS3231_Data[2];
        DS3231_Data[0]=addr;
        DS3231_Data[1]=bytedata;
        HAL_I2C_Master_Transmit(&hi2c1,DS3231_WriteAddress,DS3231_Data, 2, 1000);                //判斷容量大小的
        
/*        
        I2C_Start();
        I2C_SendByte(DS3231_WriteAddress);
        I2C_WaitAck();
        I2C_SendByte(addr);
        I2C_WaitAck();
        I2C_SendByte(bytedata);
        I2C_WaitAck();
        I2C_Stop();*/
}        


uint8_t DS3231_RD_Byte(uint8_t addr)
{        

這塊以下可能有問題
        uint8_t Arec[2],value;
        HAL_I2C_Master_Receive(&hi2c1, DS3231_ReadAddress,addr, sizeof Arec, 1000);
        value=(Arec[0]<<8)|(Arec[1]);
        return value;
        

                                                                                                                                                                                                                                                                                                                        
/* uint8_t Dat=0;
        I2C_Start();
        I2C_SendByte(DS3231_WriteAddress);
        I2C_WaitAck();
        I2C_SendByte(addr);
        I2C_WaitAck();
        I2C_Start();
        I2C_SendByte(DS3231_ReadAddress);
        I2C_WaitAck();
        Dat=I2C_ReceiveByte();
        I2C_Stop();
        
        return Dat;*/
}


我想用HAL_HAL_I2C_Master_Transmit和HAL_I2C_Master_Receive庫函數(shù)替換標準函數(shù),現(xiàn)在發(fā)送字節(jié)應(yīng)該是沒問題了,讀取各位給看一下要怎么改一下呢

回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2023-4-25 23:10 | 顯示全部樓層
STM32的硬件IIC是個大坑,坑的我在看datasheet之前要先看errata,先把硬件bug了解了才動手。對于IIC來說用軟件模擬比硬件靠譜太多了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表