主机发送示例
- 按GPIO章节引脚数字复用功能的相关描述,将SCL、SDA映射到需要的引脚,并配置SCL、SDA引脚为开漏输出模式;
- 设置SYSCTRL_APBEN1.I2Cx为1,使能I2Cx模块的时钟;
- 向SYSCTRL_APBRST1.I2Cx依次写入0、1,复位I2Cx模块;
- 配置I2Cx_BRR,使SCL的时钟速率符合应用需求;
- 设置I2Cx_BRREN为1,使能SCL时钟发生器;
- 设置I2Cx_CR.EN为1,使能I2C模块;
- 设置I2Cx_CR.STA为1,总线尝试发送START信号;
- 等待I2Cx_CR.SI变为1,START信号已发送到总线上;
- 查询I2Cx_STAT,如果该寄存器值为0x08或0x10,继续执行下一步骤,否则进行出错误处理。
- 向I2Cx_DR中写入SLA+W,设置I2Cx_CR.STA为0,设置I2Cx_CR.SI为0,发送SLA+W;
- 等待I2Cx_CR.SI变为1,SLA+W已经发送到总线上;
- 查询I2Cx_STAT,如果该寄存器值为0x18,继续执行下一步聚,否则进行出错处理;
- 向I2Cx_DR写入等发送的数据,设置I2Cx_CR.SI为0,发送数据;
- 等待I2Cx_CR.SI变为1,数据已发送到总线上;
- 查询I2Cx_STAT,如果该寄存器为0x28,继续执行下一步骤,否则进行出错处理;
- 如待发送的数据未完成,则跳转到步骤13继续执行;
- 设置I2Cx_CR.STO为1,设置I2Cx_CR.SI为0,发送STOP停止信号,结束本次传输。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
主板
+关注
关注
53文章
1849浏览量
70573 -
编程
+关注
关注
88文章
3600浏览量
93629 -
I2C
+关注
关注
28文章
1482浏览量
123430 -
GPIO
+关注
关注
16文章
1197浏览量
51968
发布评论请先 登录
相关推荐
武汉芯源Cortex-M0+ 32位低功耗MCU CW32L083系列产品介绍
FLASH 、最多 24KB RAM、最多87路GPIO,以及一系列增强型外设。外设主要包括:1路12位ADC,6路UART、2路SPI、2路IIC以及多路定时器等功能模块,相较其他系列产品CW32L083
发表于 08-24 09:12
CW32L083系列MCU系统时钟详解
的PCLKPRS位域设置,有效的分频系数为2^n(n= 0~3),可作为GTIM,BTIM,ATIM等定时器以及SPI,I2C,UART等外设的配置时钟和工作时钟。CW32L083还有两个低速时钟源
发表于 10-25 13:32
首创CW32L083GCC工程模版
32生态群里发了求助的信息,没有回复。
2、在淘宝客服,咨询,回复说,没有工程。
3、有大佬提供了CW32F030的工程,我了解到CW32F030与CW32L083一样是CortexM
发表于 06-19 22:17
CW32L083产品介绍
CW32L083是一款基于eFlash的单芯片低功耗微控制器,集成了ARM®Cortex®-M0+
核心,主频高达64MHz,高速嵌入式存储器(高达256K字节的FLASH和
高达24K字节
发表于 09-14 06:41
CW32L083微控制器数据手册
定时器以及一组高级控制 PWM 定时器。CW32L083 可以在 -40° C 到 85° C 的温度范围内工作,供电电压宽达 1.65V ~ 5.5V。支持 Sleep 和 DeepSleep两种低功耗工作模式。
发表于 09-14 06:27
评论