首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» STM8S I2C 调试记录
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
STM8S I2C 调试记录
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2015-3-29 15:37
|
只看该作者
STM8S I2C 调试记录
寄存器
,
记录
,
最好
使用STM8S005K6 与 AD7150通讯,调试环境IAR 1.4.2版本
经验:
1:寄存器I2c_CR2 应答使能位(位2)ack,在接收模式下,收到完整字节后,自动发送ack(提前设置CR2ack位使能);设置ACK都必须在接收字节前,也就是说为个在收到最后一个字节后产生一个NACK 脉冲。
2:在调试过程中,最好不要打开I2C寄存器看!因为对寄存器的读,也会造成寄存器有些位重置!直接按Go,然后暂停。
3:IAR提供的配置函数:void I2C_Init(uint32_t OutputClockFrequencyHz,uint16_t OwnAddress,
I2C_DutyCycle_TypeDef I2C_DutyCycle, I2C_Ack_TypeDef Ack,
I2C_AddMode_TypeDef AddMode, uint8_t InputClockFrequencyMHz )
关于参数InputClockFrequencyMHz请严格使用f-master的设置值,参见系统时钟框图:
4:建议使用中断状态机来实现,软件查询方式效率太低,不太好控制,特别是对于主频不高的单片机;调试程序是从官方的实例代码修改而成的,官方代码主要是缺少“重复起始”过程,对于10位地址的操作似乎有问题。本人只移植了7位地址的代码并增加了Sr过程。
本人整理的中断状态机(图有点大,需要原图的联系我):
I2C 调试记录" title="STM8S I2C 调试记录">
5:附上调试截图
需要代码的请通过QQ联系我)
通讯过程解析:
I2C 调试记录" title="STM8S I2C 调试记录" height="567" width="690">
读5个字节/读2个字节/测试通讯速率为400K
I2C 调试记录" title="STM8S I2C 调试记录" height="365" width="690">
读1个字节
I2C 调试记录" title="STM8S I2C 调试记录" height="236" width="690">
写1个字节
I2C 调试记录" title="STM8S I2C 调试记录" height="317" width="690">
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议