STM32操作AT24C16

2019-07-20 05:36发布

使用例程操作AT24C16时只能读写0-255的数据,在写入255-2047时遇到问题,一直写不进去

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
jiangyy
2019-07-20 17:33
u8 0~255,如果你想要发255-2047,为啥发不出去?这个说明你C语言基础不好。AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)中的u8 DataToWrite是u8类型的(占用一个字节内存),255-2047是占用两个字节的内存,将u16类型强制转化成u8类型的话,会舍弃高八位数据,取低八位发送过去。所以为啥发不过去你想要的数据是正常的。不过也有办法的,你可以把你u16的数据拆成两个 u8的数据,然后再发送过去。接受的时候,接收到两个u8的数据,然后将两个u8数据合成一个u16的数据。

一周热门 更多>