【NUCLEO-L552ZE测评】+AT24C32的读写操作实验
<div class='showpostmsg'><p> 在我的DS1307日历模块中包含了一块AT24C32EEPROM芯片,这块芯片正好准备以后存放蓝牙设备的相关数据,因此首先测试对AT24C32的读写操作。本次测试仍然是使用模拟I2C进行,这块EEPROM有32K(4096*8)容量,由于地址大于256,因此需要双字节内部地址,与一般的I2C操作的区别是内部地址要先发送高8位,再发送低8位,除此之外操作是相同的。</p><p> 我的测试是以秒为周期,先读出存储在AT24C32芯片中的日期字符串(即年月日时分秒),然后再将当前的日期字符串写入到AT24C32k中,以便下次读取,即当前屏幕上显示的字符串是上一秒保存进去的。测试过程的照片如下:</p>
<p></p>
<p> </p>
<p> 屏幕显示如下:</p>
<p></p>
<p> </p>
<p> 这是测试效果的动画,因屏幕的亮度偏低,观看效果差:</p>
<p></p>
<p> </p>
<p> 下面是测试的代码:</p>
<pre>
<code class="language-cs">void AT24C32_Test(void)
{
uint8_t Txt;
SI2C_16bitBuffRead( 0xA0, 0, 16, Txt);
LCD_write_ASCII(0, 5, 1, Txt);
Txt = 'D';
Txt = year / 1000 + 0x30;
Txt = year % 1000 / 100 + 0x30;
Txt = year % 100 / 10 + 0x30;
Txt = year % 10 + 0x30;
Txt = month / 10 + 0x30;
Txt = month % 10 + 0x30;
Txt = day / 10 + 0x30;
Txt = day % 10 + 0x30;
Txt = hour / 10 + 0x30;
Txt = hour % 10 + 0x30;
Txt = minute / 10 + 0x30;
Txt = minute % 10 + 0x30;
Txt = second / 10 + 0x30;
Txt = second % 10 + 0x30;
Txt = 0;
SI2C_16bitBuffWrite( 0xA0, 0, 16, Txt);
}</code></pre>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>感谢分享!AT24系列的还是比较常用的!</p>
页:
[1]