0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CW32L083 I2C主板发送编程示例

华仔的编程随笔 来源:华仔的编程随笔 作者:华仔的编程随笔 2023-06-09 16:54 次阅读

主机发送示例

  1. 按GPIO章节引脚数字复用功能的相关描述,将SCL、SDA映射到需要的引脚,并配置SCL、SDA引脚为开漏输出模式;
  2. 设置SYSCTRL_APBEN1.I2Cx为1,使能I2Cx模块的时钟
  3. 向SYSCTRL_APBRST1.I2Cx依次写入0、1,复位I2Cx模块;
  4. 配置I2Cx_BRR,使SCL的时钟速率符合应用需求;
  5. 设置I2Cx_BRREN为1,使能SCL时钟发生器
  6. 设置I2Cx_CR.EN为1,使能I2C模块;
  7. 设置I2Cx_CR.STA为1,总线尝试发送START信号
  8. 等待I2Cx_CR.SI变为1,START信号已发送到总线上;
  9. 查询I2Cx_STAT,如果该寄存器值为0x08或0x10,继续执行下一步骤,否则进行出错误处理。
  10. 向I2Cx_DR中写入SLA+W,设置I2Cx_CR.STA为0,设置I2Cx_CR.SI为0,发送SLA+W;
  11. 等待I2Cx_CR.SI变为1,SLA+W已经发送到总线上;
  12. 查询I2Cx_STAT,如果该寄存器值为0x18,继续执行下一步聚,否则进行出错处理;
  13. 向I2Cx_DR写入等发送的数据,设置I2Cx_CR.SI为0,发送数据;
  14. 等待I2Cx_CR.SI变为1,数据已发送到总线上;
  15. 查询I2Cx_STAT,如果该寄存器为0x28,继续执行下一步骤,否则进行出错处理;
  16. 如待发送的数据未完成,则跳转到步骤13继续执行;
  17. 设置I2Cx_CR.STO为1,设置I2Cx_CR.SI为0,发送STOP停止信号,结束本次传输。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 主板
    +关注

    关注

    52

    文章

    1631

    浏览量

    68146
  • 编程
    +关注

    关注

    88

    文章

    3441

    浏览量

    92417
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1348

    浏览量

    120880
  • GPIO
    +关注

    关注

    16

    文章

    1137

    浏览量

    50596
收藏 人收藏

    评论

    相关推荐

    基于CW32L083的线控器方案设计

    基于武汉芯源推出的CW32L083设计的空调线控器产品.
    的头像 发表于 06-25 14:23 1.1w次阅读
    基于<b class='flag-5'>CW32L083</b>的线控器方案设计

    CW32L083 RTC初始化设置

    介绍CW32L083的RTC初始化设置
    的头像 发表于 06-24 10:16 977次阅读
    <b class='flag-5'>CW32L083</b> RTC初始化设置

    CW32L083系列微控制器的ADC和DAC模块要如何使用?怎么配置?

    如何配置和使用CW32L083系列微控制器的ADC和DAC模块?
    发表于 01-17 06:08

    [技术手册] CW32L083数据手册

    CW32L083数据手册,PSMCU0116.pdf,Rev1.2
    发表于 05-31 16:13

    [技术手册] CW32L083用户手册

    CW32L083用户手册
    发表于 06-02 15:41

    武汉芯源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开发板介绍

    ,LED2 熄灭;▼ 按下 S2 按钮,可观察 LED2 闪烁,LED1 熄灭;▼ 可在官网下载 CW32L083 StartKit 演示软件,有助于快速了解
    发表于 10-20 11:35

    CW32L083系列MCU系统时钟详解

    的PCLKPRS位域设置,有效的分频系数为2^n(n= 0~3),可作为GTIM,BTIM,ATIM等定时器以及SPI,I2C,UART等外设的配置时钟和工作时钟。CW32L083还有两个低速时钟源
    发表于 10-25 13:32

    分享武汉芯源CW32L083VxTx_StartKit开发板资料

    CW32L083VxTx_StartKit_Schematic_V1.1.pdf 2、开发板用户手册: *附件:CW32L083VxTx_StartKit_UserManual_CN_V1.0.pdf 3、开发板
    发表于 06-08 10:00

    首创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

    CW32L083 StartKit软件包分享

    CW32L083 StartKit软件包
    发表于 09-15 07:00

    CW32L083段码屏驱动

    CW32L083开发板上有8个段码LCD显示,使其显示为0-9数字。
    的头像 发表于 06-18 09:13 18w次阅读
    <b class='flag-5'>CW32L083</b>段码屏驱动

    CW32L083如何实现AUTOTRIM时钟校准?

    CW32L083如何实现AUTOTRIM时钟校准?
    的头像 发表于 11-07 17:17 258次阅读
    <b class='flag-5'>CW32L083</b>如何实现AUTOTRIM时钟校准?