野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16911|回复: 1

野火HAL库代码IIC章节有关写入数据时有bug

[复制链接]
发表于 2020-9-21 10:56:28 | 显示全部楼层 |阅读模式
贴一下野火HAL库硬件IIC中写buffer函数
Screenshot_20200921_101123.jpg
在判断页写入过程中,分别通过判断地址是否对齐进行不同的操作,但是如果写入的数据小于一页的字节数,野火源代码进行了同样的操作(就是直接调用页写入函数),我翻看了F103,F429,H750的源代码,在这里都是一样的
其实这里是有问题的,页写入函数虽然可以不从页的起始地址写,但是不能跨页,这在地址对齐时没有问题,但是地址如果不对齐,要写入的数据不足一页,但是当前页剩下的地址又不能全部写下,那么必须跨页,就出问题了
如果地址和要写入的数据为以下:
捕获1.JPG
当前页写4个数据就要结束,但是有6个字节的数据要写,所以必须跨页,用野火的源代码,此时就出现问题了,最后两个字节就无法写入
程序输出如下:
1.JPG
因此程序在判断地址不对齐,而且数据小于一页时,应该改一下:
3.JPG
利用函数之前算出的count值,先填满一页,再从对应的下一页开始写入,最后修改的结果:
2.JPG

回复

使用道具 举报

发表于 2020-9-21 16:33:38 | 显示全部楼层
记录下先
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-20 12:32 , Processed in 0.051756 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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