登录
CW32L083 I2C主板发送编程示例
华仔的编程随笔
2023-06-09
179325
分享海报
华仔的编程随笔
81 文章
1216.1w阅读
66粉丝
+关注
描述
主机发送示例
按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停止信号,结束本次传输。
审核编辑:汤梓红
打开APP阅读更多精彩内容
点击阅读全文
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
主板
编程
I2C
GPIO
CW32L083
产品介绍
2023-09-14
0
CW32L083
微控制器数据手册
2023-09-14
0
首创
CW32L083
GCC工程模版
2023-06-19
0
CW32L083
段码屏驱动
2023-06-18
180665
[技术手册]
CW32L083
数据手册
2022-05-31
0
[技术手册]
CW32L083
用户手册
2022-06-02
0
武汉芯源Cortex-M0+ 32位低功耗MCU
CW32L083
系列产品介绍
2022-08-24
0
CW32L083
系列MCU系统时钟详解
2022-10-25
0
CW32L083
StartKit软件包分享
2023-09-15
0
基于
CW32L083
的线控器方案设计
2023-06-25
49226
基于
CW32L083
的空调遥控器方案设计
2023-06-21
1464
CW32L083
实现SHT30驱动
2023-06-22
2964
CW32L083
RTC初始化设置
2023-06-24
1427
移植RT-Thread nano到
CW32L083
2023-07-03
21923
CW32L083
如何实现AUTOTRIM时钟校准?
2023-11-07
598
全部
0
条评论
快来发表一下你的评论吧 !
发送
登录/注册
×
20
完善资料,
赚取积分