颈动脉斑块吃什么药效果最好| 为什么脸一边大一边小| 冒冷汗是什么原因| 什么粥最养胃健脾| 脸上黑色的小点是什么| 坦诚相待是什么意思| 什么叫胆汁反流性胃炎| 五月17号是什么星座| 脚冰冰凉是什么原因| zing是什么意思| 为什么指甲有竖纹| hcg是什么检查项目| 沙参长什么样子图片| 朋友圈发女朋友照片配什么文字| 正负得什么| 抗生素药对人体有什么危害| 发烧能吃什么食物| 肾炎吃什么食物好| 花代表什么数字| 吃什么助于长高| n是什么| 梦见朋友离婚了是什么意思| mz是什么意思| ella是什么意思| 为什么会吐血| 什么药止咳最好| 坐月子可以吃什么蔬菜| 两只小船儿孤孤零零是什么歌| 脚抽筋吃什么药| 沾沾喜气什么意思| 淋巴结肿大吃什么食物好| 数学专业学什么| 总胆固醇是什么意思| 长脸型适合什么样的发型女| 保养是什么意思| 被螨虫咬了非常痒用什么药膏好| 桃胶和什么相克| 维生素b吃什么| 舌头不舒服挂什么科| 瑞士为什么这么有钱| 为什么的拼音怎么写| 咖啡对心脏有什么影响| 雾化器是干什么用的| 白芨主治什么病| 兔爷是什么意思| 关节痛吃什么药| 多发肿大淋巴结是什么意思| 祉是什么意思| 什么叫肝功能不全| 橙子和橘子有什么区别| 占有欲是什么意思| 糖粉是什么| 紫癜有什么危害| 黄疸有什么症状| 吃火龙果有什么好处和坏处| 肛门痛是什么原因| 面首是什么| 木耳不能和什么一起吃| 什么样的人可以通灵| 1942年属什么生肖属相| 卵圆孔未闭挂什么科| 腌牛肉放什么调料| 白月光是什么意思| 老人助听器什么牌子好| 性出血是什么原因造成的呢要怎么办| t1什么意思| 准备好了吗时刻准备着是什么歌| mopar是什么牌子| 九月二十九号是什么星座| 多梦是什么原因造成的| 护理学是什么| 世界上最大的昆虫是什么| 90年属马的是什么命| 一什么泪珠| 7月29是什么星座| 四不放过是什么| afi是胎儿的什么意思| 88属什么| 路由器什么牌子好| 电信诈骗是什么意思| 排卵期后是什么期| 利尿剂是什么| 车牌号选什么数字吉利| 脖子疼是什么原因引起的| 乙肝五项一五阳性什么意思| 作揖是什么意思| 遗忘的遗是什么意思| 党委常委是什么级别| 虚劳病是什么病| 乳腺结节3类什么意思| 腹泻可以吃什么| 如履薄冰是什么意思| 医学pr是什么意思| 天空为什么会下雨| 筋疼挂什么科| 天天吃玉米有什么好处和坏处| 端水是什么意思| ckd3期是什么意思| 孕妇为什么要躲着白事| 二个月不来月经是什么原因| 银川有什么特产| 优生优育检查什么项目| 什么时候放开二胎政策| 甲状腺炎是什么引起的| 大吉大利是什么生肖| 艾滋病检查什么项目| 南京有什么特产可以带回家| 女人喜欢黑色代表什么| 维生素ad和d3有什么区别| 蒙奇奇是什么动物| 共济失调是什么病| 孕妇吃什么钙片好| 喇叭裤配什么上衣| 血糖高会出现什么症状| pet是什么意思| 高血脂吃什么药效果好| 吃饭肚子疼是什么原因| 为什么午觉睡醒后头疼| 亲戚是什么意思| 绝无仅有的绝什么意思| 补充微量元素吃什么| 好吃懒做的动物是什么生肖| fda是什么| 肠胃痉挛吃什么药| 有什么鱼| 校草是什么意思| 舌头开裂是什么原因| 小便发红是什么原因| olay是什么品牌| 门道是什么意思| 什么是竖式计算| 在什么情况下需要做肠镜| 眩晕症是什么原因引起| 维吾尔族是什么人种| 儿童拖鞋什么材质好| 一什么叮咛| 医院查过敏源挂什么科| 70大寿有什么讲究| 吃什么保护眼睛| 执业医师是什么意思| 异常子宫出血是什么原因| 皮炎不能吃什么食物| 戏子是什么意思| 乙脑是什么病| chb是什么意思| 滴滴什么意思| 什么时间容易受孕| 3月7日什么星座| 甜五行属什么| mechrevo是什么牌子的电脑| 吃完海鲜不能吃什么水果| 脑内小缺血灶是什么意思| 白噪音什么意思| 头晕出虚汗是什么原因引起的| 树叶又什么又什么| 什么是米其林| 普陀山求什么最灵验| 金先读什么| 有机会是什么意思| 阿托伐他汀治什么病| 月亮为什么会发光| 肾寒吃什么中成药| 脚掉皮是什么原因| 6月30号是什么星座| 4.26是什么星座| 刚拔完牙需要注意什么| 蚊子除了吸血还吃什么| 大公鸡是什么牌子| 侧颜杀是什么意思| 什么门永远关不上| 山东登州府现在叫什么| 什么补血补气最好最快| 辣椒是什么时候传入中国的| 胳膊上的花是打了什么疫苗| 牛不吃草是什么原因| 彩超能检查什么| 两肺少许纤维灶是什么意思| johnny什么意思| 血池是什么意思| 做梦牙齿掉了是什么预兆| 叶公好龙是什么故事| 什么是居间费| 梦见胡萝卜是什么意思| 雷人是什么意思| 看见蛇有什么预兆| 血糖高喝什么茶| 钾在人体中起什么作用| 眼睛充血用什么眼药水最好| nt 是什么检查| 1989年是什么蛇| 白头发吃什么药| 痛风吃什么药止痛最快| 空腹是什么意思| 什么手机拍照好看| 人为什么要睡觉| o3是什么| 米线里的麻油是什么油| 经常心慌是什么原因| 坐飞机什么东西不能带| 紫涵女装属于什么档次| 吃稀饭配什么菜好吃| 628是什么星座| 迪奥什么意思| 对数是什么| cs和cf有什么区别| 不敢苟同是什么意思| 狗感冒吃什么药| 周杰伦为什么叫jay| 八九不离十是什么意思| 小孩拉肚子吃什么食物好| 脑梗病人吃什么营养恢复最好| 一什么木瓜| tb是什么意思啊| 梦见什么是受孕成功了| 什么是私人会所| 什么的拼音怎么写| 八月份是什么季节| 驰骋沙场百战威是什么生肖| 四面弹是什么面料| 氨酶偏高是什么意思| 感染性腹泻吃什么药| 雌激素过高吃什么药| 暑假是什么时候| 抵牾是什么意思| 裂纹舌是什么原因| 把握时机是指什么生肖| 鱼鳞云代表什么天气| 蕴字五行属什么| 尿素氮高什么原因| 孕妇喝纯牛奶对胎儿有什么好处| 污秽是什么意思| 总胆红素高什么意思| 鲻鱼是什么鱼| 避孕套和安全套有什么区别| 黄色配什么颜色最搭| 散光轴位是什么意思| 什么叫高危行为| 心脏突然剧烈跳动是什么原因| 儿保科主要是检查什么| 舌头溃疡是什么原因| 7月5号什么星座| 梦见穿破鞋是什么意思| 润物细无声是什么意思| 五官端正是什么意思| 肘是什么意思| 眼睛长黄斑是什么原因| 外阴过敏用什么药| 一日三餐是什么生肖| edt是什么时间| 脊髓空洞症吃什么药| 周深为什么是女声| 铜陵有什么好玩的地方| 为什么经常放屁| 牛鞭是什么东西| 时间是什么| 北京大学校长什么级别| 胃胀肚子胀吃什么药| 芡实适合什么人吃| bpm什么意思| 8月21日是什么星座| 脚指甲变白是什么原因| 短杆菌是什么意思| 夏天水肿的原因是什么| 舌根苔白厚腻是什么原因| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 活动中心 ? 板卡试用 ? 【分享开发笔记,赚取电动螺丝刀】STC32G12K128单片机以I2C外设访问A

共8条 1/1 1 跳转至

【分享开发笔记,赚取电动螺丝刀】STC32G12K128单片机以I2C外设访问AT24C04存储器 21

专家
2025-08-04 19:33:09     打赏
百度 短短几年,一系列新理念新思想新战略及时提出,一系列重大方针政策密集出台,一系列重大举措相继推出,一系列重大工作务实推进,许多长期想解决而没有解决的难题得到解决,许多过去想办而没有办成的大事终于办成。

在学习国芯Ai8051U单片机的I2C外设的时候,例程始终没有跑通。感觉在芯片构造上,Ai8051U与STC32G12K128应该差不多,于是回过头来研究STC32G12K128,使用其I2C外设读写AT24C04。

图片1.png

在读写AT24C04时,WordAddress只需要一个字节就够了。以读操作为例:

AT24C04的任意地址的读操作:

图片2.png

通讯时序中红色标记的P0位置的值,决定访问AT24C04的前后两个256字节中的哪个页。(AT24C04为512字节空间,被划分为两个页,WordAddress是一个字节)。

使用I2C外设作为主机使用时,读写操作中,开始信号、结束信号、收发数据以及Ack、NAck信号,都是通过向I2CMSCR(主机控制寄存器)这个寄存器发送不同的指令来实现的。

测试使用了最简单的电路连接,由STC32G12K128核心板和自制面包板搭建,


原理图如下:

图片5.png

I2C外设使用P2.4和P2.5复用为SCL和SDA。为了便有验证测试结果,使用了串口2(使用P4.6和P4.7)作为log输出。

I2C 配置寄存器(I2CCFG)设置为0xe0,

图片6.png

ENI2C = 1 :表示使能I2C外设

MSSL = 1 :表示工作为主机模式

MSSPEED =100000 :根据公式:I2C 总线速度=SYSCLK / 2 / (MSSPEED * 2 + 4),本例中SYSCLK 为单片机的工作主频,预设为22118400Hz,所以I2C的通讯速度应该是162KHz,实际测试是82KHz左右,似乎是差一倍,原因还没有搞清楚。

主程序中的处理逻辑是采用读-----加一后回写-----再读的方式运行的。



    //-----------------------读取数据-----------------------
    IIC_Read_NByte(SLAVE_24C04,0,dat,5);
    for( i=0;i<5;i++ ) {
        sprintf(str,"地址:%d,值:%d\r\n",i,dat[i]);
        PrintString2(str);
    }
    PrintString2( "读取结束\r\n");
    delay_ms(200);
    //-----------------------写入修改后的数据-----------------------
    for( i=0;i<5;i++ ) {
        dat[i] = (dat[i] +1);
    }
    IIC_Write_NByte(SLAVE_24C04,0,dat,5); 
    delay_ms(200);
    //-----------------------读取数据-----------------------
    IIC_Read_NByte(SLAVE_24C04,0,dat,5);
    for( i=0;i<5;i++ ) {
        sprintf(str,"地址:%d,值:%d\r\n",i,dat[i]);
        PrintString2(str);
    }
    PrintString2( "测试结束\r\n");

实际运行中通过逻辑分析仪铺捉到的I2C通讯逻辑波形如下所以,可以看到有三个明显的I2C通讯过程,就是读-写-读的三组时序。AT24C04事先通过编程器将前八个单元的数据改成了1,2,3,4,5,6,7,8。经过几次测试,数据已经被程序改变成现在的这个样子。

图片7.png


读入的数据时6,7,8,9,10

图片8.png

分别加一后,变成7,8,9,10,11,重写回原来的单元,

图片9.png

再次读取后显示为7,8,9,10,11。

图片10.png

来自串口的log信息:

图片11.png


工程代码:i2c.zip




专家
2025-08-04 20:33:56     打赏
2楼

感谢不想


专家
2025-08-04 20:37:37     打赏
3楼

感谢不想


专家
2025-08-04 20:40:20     打赏
4楼

感谢不想


高工
2025-08-04 15:03:28     打赏
5楼

奇怪了,你板子并没有外挂晶振,sysclk是22m左右是怎么算出来的?用的内部高速IEC二分频分出来的?


高工
2025-08-04 09:11:40     打赏
6楼

I2C 读写验证通信功能正常,总线的波形也可以看出对应的时序,对于理解I2C时许很有帮助


专家
2025-08-04 16:02:21     打赏
7楼

相信很多同学多iic深有感触。

当年stm32出了不少gpio模拟的例子。


院士
2025-08-04 18:17:12     打赏
8楼

这款MCU的I2C外设分频看来是没有分数模式。

不过,I2C对主机通讯频率的容忍度还是挺高的



共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
手牵手我们一起走是什么歌 乳腺炎不能吃什么 儿童包皮过长挂什么科 当我们谈论爱情时我们在谈论什么 什么样的嘴巴
急性荨麻疹是什么原因引起的 夏天手脱皮是什么原因 人走了说什么安慰的话 世界上最可怕的动物是什么 跑步对身体有什么好处
三观不合是什么意思 猴子怕什么 12月2日是什么星座 八纲辨证中的八纲是什么 bc什么意思
痞块是什么意思 什么是机械键盘 七月14号是什么星座 7.6什么星座 什么叫做罹患疾病
鄂尔多斯为什么叫鬼城hcv9jop1ns4r.cn 麦冬不能和什么一起吃96micro.com 备孕需要做什么hcv9jop8ns2r.cn 血窦是什么意思hcv9jop5ns4r.cn 鼠疫是由什么引起的hcv8jop1ns1r.cn
下面潮湿是什么原因引起的hcv8jop0ns0r.cn 亲子鉴定挂什么科inbungee.com 老虎菜是什么菜hcv7jop5ns1r.cn 73年属什么生肖hcv8jop2ns9r.cn 开颅手术有什么后遗症hcv7jop7ns4r.cn
十月份出生的是什么星座hcv9jop3ns6r.cn 希尔福是什么药hcv8jop2ns8r.cn 头发掉什么原因hcv7jop9ns1r.cn 吃什么能安神助睡眠hcv9jop3ns9r.cn 巧克力有什么功效与作用hcv8jop7ns4r.cn
人体七大营养素是什么hcv8jop4ns3r.cn 妮是什么意思hcv8jop2ns1r.cn 雷尼替丁主要治什么胃病hcv7jop6ns7r.cn 红色药片一般是什么药hcv8jop6ns4r.cn 宫颈糜烂有什么症状hcv9jop6ns5r.cn
百度