找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 797|回复: 1
打印 上一主题 下一主题
收起左侧

问一下各位STM32单片机HAL库读取ds3231流程的问题

[复制链接]
跳转到指定楼层
楼主
ID:978416 发表于 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库函数替换标准函数,现在发送字节应该是没问题了,读取各位给看一下要怎么改一下呢

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-4-25 23:10 | 只看该作者
STM32的硬件IIC是个大坑,坑的我在看datasheet之前要先看errata,先把硬件bug了解了才动手。对于IIC来说用软件模拟比硬件靠谱太多了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表