当前页面为 开发中 版本,查看特定版本的文档,请在页面左下角的下拉菜单中进行选择。

I2C Receive Send Polling

1 功能概述

本例程演示如何使用 I2C HAL Driver 实现查询方式的I2C收发功能。

2 环境准备

  • 硬件设备与线材:

    • PAN107X EVB 核心板底板各两块

    • JLink 仿真器(用于烧录例程程序)

    • USB-TypeC 线两条(用于底板供电和查看串口打印 Log)

    • 杜邦线数根或跳线帽数个(用于连接各个硬件设备)

  • 硬件接线:

    • 将 EVB 核心板插到底板上

    • 使用 USB-TypeC 线,将 PC USB 插口与 EVB 底板 USB->UART 插口相连

    • 使用杜邦线将 EVB0 底板上的 P13(SDA)、P14(CLK)分别接入EVB1对应相同PAD上

    • 使用杜邦线将 JLink 仿真器的:

      • SWD_CLK 引脚与 EVB 底板的 P00 排针相连

      • SWD_DAT 引脚与 EVB 底板的 P01 排针相连

      • SWD_GND 引脚与 EVB 底板的 GND 排针相连

  • PC 软件:

    • 串口调试助手(UartAssist)或终端工具(SecureCRT),波特率 921600(用于接收串口打印 Log)

3 编译和烧录

例程位置:<PAN10XX-NDK>\01_SDK\nimble\samples\peripheral\i2c_master_poll_send\keil_107x

PAN10XX-NDK>\01_SDK\nimble\samples\peripheral\i2c_slave_poll_receive\keil_107x

双击NDK>\01_SDK\nimble\samples\peripheral\i2c_master_poll_send\keil_107x目录下Keil Project 文件打开工程进行编译并烧录至EVB0板。

双击NDK>\01_SDK\nimble\samples\peripheral\i2c_slave_poll_receive\keil_107x目录下Keil Project 文件打开工程进行编译并烧录至EVB1板。

4 例程演示说明

  1. 先烧录i2c_slave_poll_receive hex至EVB1,芯片会通过串口打印初始化 Log,i2c slave进入接收模式,等待接收32Byte数据:

    Try to load HW calibration data.. DONE.
    - Chip Info         : 0x1
    - Chip CP Version   : 255
    - Chip FT Version   : 4
    - Chip MAC Address  : D0000000037D
    - Chip UID          : 7D0300DDF8375603E8
    - Chip Flash UID    : 425031563233391700DDF8375603E878
    - Chip Flash Size   : 512 KB
    
    APP version: 255.255.65535
    start i2c slave poll start receive
    
  2. 烧录i2c_master_poll_send hex至EVB0,芯片会通过串口打印初始化 Log,i2c master进入发送模式,发送8bit数据0x00~0x1f,发送前打印Log start i2c master poll start send,发送完成打印Log start i2c master poll send over:

    Try to load HW calibration data.. DONE.
    - Chip Info         : 0x1
    - Chip CP Version   : 255
    - Chip FT Version   : 4
    - Chip MAC Address  : D000000000D1
    - Chip UID          : D10000F5F737560347
    - Chip Flash UID    : 425031563233391700F5F73756034778
    - Chip Flash Size   : 512 KB
    
    APP version: 255.255.65535
    start i2c master poll start send
    start i2c master poll send over
    
  3. i2c slave接收32 Byte数据并打印接收的数据:

    start i2c slave poll received: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F