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

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

3天内不再提示

AT32F435/437 I2C使用指南

0739hhbb 来源:AT32 MCU 雅特力科技 2023-01-03 15:47 次阅读

I2C接口简介

I2C接口是由数据线SDA和时钟线SCL构成,在标准模式下通信速度可达到100kHz,快速模式下则可以达到400kHz,增强快速模式可达到1MHz。一帧数据传输从开始信号开始,在结束信号后停止,在收到开始信号后总线被认为是繁忙的,当收到结束信号后,总线被认为再次空闲。I2C接口具有主机和从机模式、多主机功能、可编程建立和保持时间、时钟延展功能、DMA存取数据、支持SMBus 2.0协议等特点。

图1. I2C框图

a4c28ede-881d-11ed-bfe3-dac502259ad0.png

I2C接口通信

主机通信流程

主机通信初始化


1. 主机时钟初始化 在启动外设(I2CEN)之前,必须先设置I2Cx_CLKCTRL寄存器的各个位用以配置I2C主时钟。 ― DIV[7:0]:I2C时钟分频 ― SDAD[3:0]:数据保持时间(tHD;DAT) ― SCLD[3:0]:数据建立时间(tSU;DAT) ― SCLH[7:0]:SCL高电平时间 ― SCLL[7:0]:SCL低电平时间 该寄存器的配置可以使用Artery_I2C_Timing_Configuration时钟配置工具计算,见第三章节。 低电平控制:当检测到SCL总线为低电平时,内部SCLL计数器开始计数,当计数值达到SCLL值时,释放SCL线,SCL线变为高电平。 高电平控制:当检测到SCL总线为高电平时,内部SCLH计数器开始计数,当计数值达到SCLH值时,拉低SCL线,SCL线变为低电平,当在高电平期间,如果被外部总线拉低,那么内部SCLH计数器停止计数,并开始低电平计数,这为时钟同步提供了条件。

图2. 主机时钟的产生

a4eae7bc-881d-11ed-bfe3-dac502259ad0.png

2. 主机通信初始化

在启动通讯前须先设定I2C_CTRL2寄存器中的几项参数: 1) 设置传输字节数 ― ≤255字节

配置I2C_CTRL2的RLDEN=0,关闭重载模式

配置I2C_CTRL2的CNT[7:0]=N

― >255字节

配置I2C_CTRL2的RLDEN=1,使能重载模式

配置I2C_CTRL2的CNT[7:0]=255

剩余传输字节数N=N-255

2) 设置传输结束模式 ― ASTOPEN=0:软件结束模式,当数据传输完成后,I2C_STS的TDC标志置1,软件设置GENSTOP=1或者GENSTART=1,发送STOP条件或者START条件。 ― ASTOPEN=1:自动结束模式,当数据传输完成后,自动发送STOP条件。 3) 设置从机地址 ― 设置寻址的从机地址值(I2C_CTRL2的SADDR) ― 设置从机地址模式(I2C_CTRL2的ADDR10)

ADDR10=0:7位地址模式

ADDR10=1:10位地址模式

4) 设置传输方向(I2C_CTRL2的DIR) ― DIR=0:主机接收数据 ― DIR=1:主机发送数据 5) 开始传输 设置I2C_CTRL2的GENSTART=1,主机开始在总线上发送START条件和从机地址。

3. 主机10 bits寻址的特殊时序初始化

在10位地址传输模式下,I2C_CTRL2的READH10用于产生特殊时序,当READH10=1时,支持如下传输序:主机先发送数据给从机,然后再从从机读取数据,传输时序图如下图所示:

图3. 10位地址的读访问READH10=1

a50dd420-881d-11ed-bfe3-dac502259ad0.png


主机在软件结束模式(ASTOPEN=0)下,发送数据到从机,当数据发送完成后设置READH10=1,然后再从从机接收数据。

图4. 10位地址的读访问READH10=0

a52f648c-881d-11ed-bfe3-dac502259ad0.png    
主机通信初始化软件接口

主机通信初始化所用到的软件接口通过独立的函数接口实现,如下:
a557983a-881d-11ed-bfe3-dac502259ad0.png
i2c_init函数三个参数分别为:所使用的I2C、数字滤波值和主机时钟配置值。 i2c_transmit_set函数用于初始化通信参数,包括:所使用的I2C、从机地址、传输字节数、停止条件产生模式和起始条件产生模式。 i2c_addr10_mode_enable函数用于使能10位地址模式。 i2c_addr10_header_enable函数用于使能10位地址头读取时序,即主机发送完整的10位从机地址读序列或主机只发送10位地址的前7位。

主机发送流程

1) I2C_TXDT数据寄存器为空,I2C_STS的TDIS=1; 2) 向TXDT数据寄存器写入数据,数据开始发送; 3) 重复1、2步骤直到发送CNT[7:0]个数据; 4) 如果此时I2C_STS的TCRLD=1(重载模式),分为以下两种情况: ― 剩余字节数N>255:向CNT写入255,N=N-255,TCRLD被自动清0,传输继续; ― 剩余字节数N≤255:关闭重载模式(RLDEN=0),向CNT写入N,TCRLD被自动清0,传输继续。 5) 结束时序 ― 停止条件产生:

软件结束模式(ASTOPEN=0):此时I2C_STS的TDC置1,设置GENSTOP=1产生STOP条件;

自动结束模式(ASTOPEN=1):自动产生STOP条件。

― 等待产生STOP条件,当STOP条件产生时,I2C_STS的STOPF置1,将I2C_CLR的STOPC写1,清除STOPF标志,传输结束。
图5. I2C主机发送流程图
a5868186-881d-11ed-bfe3-dac502259ad0.png
图6. I2C主机发送时序图

a5b6b072-881d-11ed-bfe3-dac502259ad0.png    
主机发送流程软件接口

主机发送通过独立的函数接口实现,如下:

a6288814-881d-11ed-bfe3-dac502259ad0.png

i2c_master_transmit函数为i2c_application.c文件所提供的应用层接口函数,参数包括:I2C结构体指针、从机地址、发送数据指针、发送数据字节数和函数超时时间。 注:此函数为Artery所提供的标准主机发送函数。用户也可根据前述主机发送流程,自行编写主机发送函数。

主机接收流程

1) 当收到数据后,RDBF=1,读取RXDT数据寄存器,RDBF被自动清零; 2) 重复步骤2直到接收CNT[7:0]个数据; 3) 如果此时I2C_STS的TCRLD=1(重载模式),分为以下两种情况: ― 剩余字节数N>255:向CNT写入255,N=N-255,TCRLD被自动清0,传输继续; ― 剩余字节数N≤255:关闭重载模式(RLDEN=0),向CNT写入N,TCRLD被自动清0,传输继续。 4) 当在接收到最后一个字节时,主机会自动发送一个NACK。 5) 结束时序 ― 停止条件产生:

软件结束模式(ASTOPEN=0):此时I2C_STS的TDC置1,设置GENSTOP=1产生STOP条件;

自动结束模式(ASTOPEN=1):自动产生STOP条件。

― 等待产生STOP条件,当STOP条件产生时,I2C_STS的STOPF置1,将I2C_CLR的STOPC写1,清除STOPF标志,传输结束。
图7. I2C主机接收流程图

a642e146-881d-11ed-bfe3-dac502259ad0.png
图8. I2C主机接收时序图
a6732cb6-881d-11ed-bfe3-dac502259ad0.png    

主机接收流程软件接口

主机接收通过独立的函数接口实现,如下:

a68a797a-881d-11ed-bfe3-dac502259ad0.png

i2c_master_receive函数为i2c_application.c文件所提供的应用层接口函数,参数包括:I2C结构体指针、从机地址、接收数据指针、接收数据字节数和函数超时时间。 注:此函数为Artery所提供的标准主机接收函数。用户也可根据前述主机接收流程,自行编写主机接收函数。

从机通信流程

从机通信初始化

1. 从机地址配置 每个I2C从设备可同时支持2个从设备地址,由OADDR1和OADDR2指定 I2C_OADDR1 — 通过ADDR1EN使能 — 通过ADDR1MODE配置为7位(默认)或10位地址 I2C_OADDR2 — 通过ADDR2EN使能 — 固定7位地址模式 — 可通过ADDR2MASK[2:0]来在进行地址匹配比较时屏蔽掉0~7个LSB地址位

ADDR2MASK=0表示7位地址中的每一位都要参与匹配比较

ADDR2MASK=7表示任何非保留地址的7位地址都会被该从设备应答

2. 从机地址匹配

当I2C启用的地址选中匹配时,ADDRF中断状态标志会被置1,如果ADDRIEN位为1,就会产生一个中断。如果两个从地址都使能,在地址匹配产生ADDR中断时,可以查看状态寄存器中的ADDR[6:0]来得知是OADDR1还是OADDR2被寻址了。

3. 从机字节控制模式(通常SMBus模式下才使用)

从设备可以对每个收到的字节进行应答控制。 所需配置:SCTRL=1&RLDEN=1&STRETCH=0&CNT≥1 从机字节控制流程: 1) 每收到一个字节TCRLD置位,时钟延展于第8和第9个脉冲之间 2) 软件读取RXDT中的值,并决定是否置位ACK 3) 软件重装载CNT=1来停止时钟延展 4) 应答或非应答信号在第9个脉冲时刻出现在总线上 注意: 置位SCTRL时,必须开启时钟延展,即STRETCH=0 CNT可以是大于1的值,来实现多个字节以自动ACK接收完毕后再启动应答控制,从设备发送时推荐关闭SCTRL,此时无需字节应答控制。

从机通信初始化软件接口

从机通信初始化所用到的软件接口通过独立的函数接口实现,如下:

a6a4737a-881d-11ed-bfe3-dac502259ad0.png

i2c_own_address1_set函数用于配置OADDR1地址模式以及ADDR1地址值。 i2c_own_address2_set函数用于配置ADDR2地址值以及ADDR2屏蔽位。 i2c_own_address2_enable函数用于使能ADDR2地址。 i2c_slave_data_ctrl_enable函数用于使能从机字节控制模式。 i2c_clock_stretch_enable函数用于使能从机时钟延展功能。 i2c_reload_enable函数用于使能发送数据重载模式。

从机发送流程

1) 响应主机地址,匹配时回复ACK; 2) TXDT为空时,置位TDIS,从设备写入发送数据; 3) 每发送一个字节会收到ACK,且置位TDIS; 4) 如果收到NACK位:

— 置位NACKF,产生中断;

— 从设备自动释放SCL和SDA(以便主设备发送STOP或RESTART);

5) 如果收到STOP位:

— 置位STOPF,产生中断;

当从机发送开启时钟延展(STRETCH=0)时,在等待ADDRF标志时和发送前一个数据的第9个时钟脉冲后,会把TXDT中的数据拷贝到移位寄存器中,如果此时TDIS还是置位,表示TXDT没有写进待发送数据,将发生时钟延展,如下流程图:

图9. I2C从机发送流程图

a6c24e36-881d-11ed-bfe3-dac502259ad0.png


需要注意的是,在时钟延展关闭(STRETCH=1)的情况下,如果在将要传输数据的第一个Bit位开始发送之前,也就是SDA边沿产生之前,如果数据还未写入TXDT数据寄存器,那么会发生欠载错误,此时I2C_STS的OUF将会置1,并将0xFF发送到总线。 为了能及时的写入数据,可以在通信开始前,先将数据写入到DT寄存器:软件先将TDBE置1,目的是为了清空TXDT寄存器的数据,然后将第一个数据写入TXDT寄存器,此时TDBE清零。


图10. I2C从机发送时序图

a6fb355c-881d-11ed-bfe3-dac502259ad0.png  


从机发送流程软件接口

从机发送通过独立的函数接口实现,如下:


a71a73b8-881d-11ed-bfe3-dac502259ad0.png


指针、发送数据指针、发送数据字节数和函数超时时间。 注:此函数为Artery所提供的标准从机发送函数。用户也可根据前述从机发送流程,自行编写从机发送函数。

从机接收流程


1) 当收到数据后,RDBF=1,读取RXDT数据寄存器,RDBF被自动清零; 2) 重复步骤2直到所有数据接收完成; 3) 等待收到STOP条件,当收到STOP条件时,I2C_STS的STOPF置1,将I2C_CLR 的STOPC写1,清除STOPF标志,传输结束。


图11. I2C从机接收流程图


a732bde2-881d-11ed-bfe3-dac502259ad0.png


图12. I2C从机接收时序图

a75b4de8-881d-11ed-bfe3-dac502259ad0.png    

从机接收流程软件接口

从机接收通过独立的函数接口实现,如下:

a786146a-881d-11ed-bfe3-dac502259ad0.png


i2c_slave_receive函数为i2c_application.c文件所提供的应用层接口函数,参数包括:I2C结构体指针、接收数据指针、接收数据字节数和函数超时时间。 注:此函数为Artery所提供的标准从机接收函数。用户也可根据前述从机接收流程,自行编写从机接收函数。

I2C配置工具

功能简介

I2C配置工具Artery_I2C_Timing_Configuration.exe可以实现对主机和从机的时钟、数字滤波、模拟滤波配置。

资源准备

1) 软件环境Artery_I2C_Timing_Configuration.exe 图13. Artery I2C Timing Configuration

a79f4372-881d-11ed-bfe3-dac502259ad0.png    

使用步骤

1) 选择芯片型号 选择当前使用的芯片型号,例如可以选择AT32F435、AT32F437。 2) 选择设备模式

Master:主模式,I2C作为主机;

Slave:从模式,I2C作为从机。

3) 选择I2C速度模式

Standard-mode:标准模式,范围0~100kHz;

Fast-mode:快速模式,范围0~400kHz;

Fast-modePlus:增强快速模式,范围0~1000kHz。

4) 设置I2C速度(单位kHz) 根据实际需求设置I2C通信速度,例如需要通信速度为10kHz,那么这里设置为10。 5) 设置I2C时钟源频率(单位kHz) 根据实际使用的I2C时钟源频率来配置,例如AT32435 I2C时钟源为PCLK1,当AT32435主频为288MHz,APB1为144MHz时,这里设置为144000。 6) 模拟滤波使能

On:打开;

Off:关闭。

模拟滤波使能后,将过滤50ns以下的脉冲。 7) 数字滤波(范围0~15) 数字滤波时间=数字滤波值x TI2C_CLK; 其中TI2C_CLK=1/I2C时钟源频率。 当值为0时,数字滤波关闭,当值>0时将过滤小于数字滤波时间的脉冲。 8) 上升时间(tr单位ns) SCL和SDA总线的上升沿,如图18所示。I2C协议中规定了在标准模式(Standard-mode)、快速模式(Fast-mode)、增强快速模式(Fast-mode Plus)下的范围,详情请参照表1。上升时间和上拉电阻的阻值关系很大,上拉电阻越小,上升时间越短,可以支持的通信速度就越快,但是功耗也越高。 表2中给出了一些常用上拉电阻阻值所对应的上升沿时间,实际可能会因为总线挂的设备数量、布线等差异而有所不同,仅供参考。 9) 下降时间(tf单位ns) SCL和SDA总线的下降沿,如图18所示。I2C协议中规定了在标准模式(Standard-mode)、快速模式(Fast-mode)、增强快速模式(Fast-mode Plus)下的范围,详情请参照表1。 图14.上升沿(tr)下降沿(tf)规范 a7cde150-881d-11ed-bfe3-dac502259ad0.png 表1. I2C时间规范 a7ef5c5e-881d-11ed-bfe3-dac502259ad0.png 表2. 常用上拉电阻阻值的tr、tf参考值(VDD=3.3V) a80eb5b8-881d-11ed-bfe3-dac502259ad0.png 注:该值是总线上连接两片AT32 MCU,一个作为主机,一个作为从机测试出来的值,实际可能会因为总线挂的设备数量、布线等差异而有所不同。 10) 产生代码 点击产生代码,上诉配置的值,将会以代码的形式产生出来,如下图红框所示,只需要将右侧输出的代码替换到自己的程序即可。 图15. 代码产生 a826a4d4-881d-11ed-bfe3-dac502259ad0.png    

案例 读写EEPROM

功能简介

使用硬件I2C接口对EEPROM存储设备进行读写访问。

资源准备

1) 硬件环境 对应产品型号的AT-START BOARD 4.7K上拉电阻 EEPROM存储设备 2) 软件环境 projectat_start_f4xxexamplesi2ceeprom

软件设计

1) 配置流程

开启I2C外设时钟

配置I2C所复用的GPIO

配置I2C所用的DMA通道

使能I2C外设接口

写入EEPROM并读取写入的数据

比较读写数据内容是否正确

2)代码介绍

main函数代码描述

a84e8c7e-881d-11ed-bfe3-dac502259ad0.png    

实验效果

如若读写数据完全相同,则LED3会被点亮。

案例 轮询方式通信

功能简介

通过轮询方式让两块AT-START BOARD的I2C接口进行通信,测试作为主机或从机发送和接收数据。

资源准备

1) 硬件环境 对应产品型号的AT-START BOARD两块 4.7K上拉电阻 2) 软件环境 projectat_start_f4xxexamplesi2ccommunication_poll

软件设计

1) 配置流程

开启I2C外设时钟

配置I2C所复用的GPIO

使能I2C外设接口

从机准备接收数据

主机发送数据

从机准备发送数据

主机接收数据

主机从机对比发送和接收到的数据是否正确

2) 代码介绍

main函数代码描述

a87693c2-881d-11ed-bfe3-dac502259ad0.png    

实验效果

通过宏定义:#define MASTER_BOARD来选择两块板子的主从关系;

如若主机或从机的读写数据完全相同,则LED3会被点亮,否则LED2会不停闪烁。

案例 中断方式通信

功能简介

通过中断方式让两块AT-START BOARD的I2C接口进行通信,测试作为主机或从机发送和接收数据。

资源准备

3) 硬件环境对应产品型号的AT-START BOARD两块 4.7K上拉电阻 4) 软件环境 projectat_start_f4xxexamplesi2ccommunication_int

软件设计

3) 配置流程

开启I2C外设时钟

配置I2C所复用的GPIO

使能I2C外设接口

使能I2C中断

从机准备接收数据

主机发送数据

从机准备发送数据

主机接收数据

主机从机对比发送和接收到的数据是否正确

4) 代码介绍

main函数代码描述

a8a9e150-881d-11ed-bfe3-dac502259ad0.png

主机中断处理函数代码描述

a8f90186-881d-11ed-bfe3-dac502259ad0.png

从机中断处理函数代码描述

a929a6f6-881d-11ed-bfe3-dac502259ad0.png

实验效果

通过宏定义:#define MASTER_BOARD来选择两块板子的主从关系;

如若主机或从机的读写数据完全相同,则LED3会被点亮,否则LED2会不停闪烁。

案例 DMA方式通信

功能简介

通过DMA方式让两块AT-START BOARD的I2C接口进行通信,测试作为主机或从机发送和接收数据。

资源准备

5) 硬件环境 对应产品型号的AT-START BOARD两块 4.7K上拉电阻 6) 软件环境 projectat_start_f4xxexamplesi2ccommunication_dma

软件设计

5) 配置流程

开启I2C外设时钟

配置I2C所复用的GPIO

配置I2C所使用的DMA通道

使能I2C外设接口

从机准备接收数据

主机发送数据

从机准备发送数据

主机接收数据

主机从机对比发送和接收到的数据是否正确

6)代码介绍

main函数代码描述

a95796b0-881d-11ed-bfe3-dac502259ad0.png

主机DMA发送接收完成中断处理函数代码描述

a98cc7ea-881d-11ed-bfe3-dac502259ad0.png    

实验效果

通过宏定义:#define MASTER_BOARD来选择两块板子的主从关系;

如若主机或从机的读写数据完全相同,则LED3会被点亮,否则LED2会不停闪烁。

审核编辑:汤梓红

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

    关注

    30

    文章

    5042

    浏览量

    117766
  • 接口
    +关注

    关注

    33

    文章

    7653

    浏览量

    148554
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1348

    浏览量

    120886
  • AT32
    +关注

    关注

    1

    文章

    97

    浏览量

    1831

原文标题:AT32讲堂041 | AT32F435/437 I2C使用指南

文章出处:【微信号:AT32 MCU 雅特力科技,微信公众号:AT32 MCU 雅特力科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AT32F435/437系列安全库区的应用原理、软件使用方法及范例程序

    AT32F435/437 Security Library Application Note主要在阐述AT32F435/437系列安全库区的应用原理、软件使用方法及范例程序。
    发表于 10-25 07:22

    AT32F435/437时钟配置

    AT32F435/437时钟配置主要介绍两部分内容:1、基于雅特力提供的V2.x.x 的板级支持包来进行时钟源码的配置及修改2、如何使用配套的时钟配置工具来进行时钟路径及参数的设定,生
    发表于 10-25 06:18

    AT32F435/437 EDMA使用指南

    AT32F435/437 EDMA使用指南本文主要就EDMA 的基本功能进行讲解和案列解析。
    发表于 10-25 07:24

    AT32F435/437 I 2C使用指南

    AT32F435/437 I2C使用指南主要就I2C 总线接口的基本功能进行讲解和案例解析。
    发表于 10-25 08:09

    如何提升AT32F435/437性能

    AT32F435/437 Performance Improvement描述了如何通过软件方法改善AT32F435_437的运行效能。
    发表于 10-25 07:37

    AT32F435/437 ADC应用说明

    AT32F435/437 ADC使用指南主要以ADC的特色功能进行讲解和案列解析。
    发表于 10-25 08:08

    AT32F435/437xx GPIO使用指南

    AT32F435/437xx的通用功能I/O (GPIO)提供了一系列与外部环境通讯的接口,可用于MCU与其他嵌入式设备之间通过数字或模拟方式的通讯。AT32F435/
    发表于 10-25 08:23

    AT32F435/437 OTGFS应用说明

    AT32F435/437 OTGFS Application Note主要描述AT32 OTGFS 外设特性,OTGFS 支持主机和设备模式。
    发表于 10-25 07:01

    AT32F435/437 DMA使用指南

    AT32F435/437 拥有 2 个 DMA 控制器(DMA1/DMA2),每个 DMA 支持 7 个通道且外设的 DMA 请求可映射到任意通道上。本文主要就 DMA 的基本功能进行
    发表于 10-25 08:07

    AT32F425 I2C使用指南

    AT32F425 I2C使用指南本文主要就I2C 总线接口的基本功能进行讲解和案例解析。
    发表于 10-25 07:39

    AT32F435&AT32F437入门使用指南

    AT32F435 & AT32F437入门使用指南旨在让用户快速使用AT32F435xx /AT32F437xx 进行项目开发,AT
    发表于 10-26 06:58

    雅特力AT32F435/437 OTGFS应用笔记

    AT32F435/437包含2个独立的OTGFS,编号OTGFS1和OTGFS2,本章将描述OTGFS支持的一些基本功能。 OTGFS1和OTGFS2特性完全相同。
    的头像 发表于 03-08 13:23 1424次阅读
    雅特力<b class='flag-5'>AT32F435</b>/<b class='flag-5'>437</b> OTGFS应用笔记

    AT32讲堂041 | AT32F435/437 I2C使用指南

    I2C接口简介I2C接口是由数据线SDA和时钟线SCL构成,在标准模式下通信速度可达到100kHz,快速模式下则可以达到400kHz,增强快速模式可达到1MHz。一帧数据传输从开始信号开始,在结束
    的头像 发表于 01-12 14:45 2256次阅读
    AT32讲堂041 | <b class='flag-5'>AT32F435</b>/<b class='flag-5'>437</b> <b class='flag-5'>I2C</b><b class='flag-5'>使用指南</b>

    雅特力AT32F435/F437入门使用指南

    搭建AT32开发环境一、调试工具及开发板目前AT32F435/F437开发板都自带AT-Link-EZ调试工具,AT-Link-EZ如下图左边红框所示,它也可拆开后单独搭配其他电路板使用,支持IDE在线调试、在线烧录、USB转串口等功能。图1.AT-
    的头像 发表于 11-10 08:15 2303次阅读
    雅特力<b class='flag-5'>AT32F435</b>/F<b class='flag-5'>437</b>入门<b class='flag-5'>使用指南</b>

    AT32F435 & AT32F437入门使用指南

    电子发烧友网站提供《AT32F435 & AT32F437入门使用指南.pdf》资料免费下载
    发表于 12-18 11:13 1次下载
    <b class='flag-5'>AT32F435</b> & AT32F<b class='flag-5'>437</b>入门<b class='flag-5'>使用指南</b>