自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 AT32F407/437使用FreeRTOS并实现ping客户端

Note: 所有 project 都是基于 keil 5 而建立,若用户需要在其他编译环境上使用,请参考AT32F407_Firmware_Library_V2.x.x/project/at_start_f407/templates 中各种编译环境(例如IAR6/7,keil 4/5)进行简单修改即可。1)打开at32f407_ping_client_on_freertos/ at32f437_ping_client_on_freertos源程序,编译后下载到实验板。1) 指示灯LED2/LED3。

2022-11-21 21:14:07 504 1

原创 SC0100 AT32F415输出20路PWM

注: 所有project都是基于keil 5而建立,若用户需要在其他编译环境上使用,请参考雅特力提供的BSP_V2.x.x\project\xxx\templates中各种编译环境(例如IAR6/7/8,keil 4/5)进行简单修改即可。2) 各TMR内部级联关系:TMR1(主定时器)----内部触发----->TMR2/3/4(从定时器)----tmr2 内部触发---->TMR5(从定时器)注: 本例程使用AT32F415RCT7实现,若使用其他型号IC需要确保封装有上述表格内的IO口。

2022-11-21 20:58:39 554

原创 SC0105 AT32F435/437 同时使用两个OTG

SC0105 AT32F435/437 同时使用两个OTG

2022-11-13 16:53:14 295

原创 SC0099 AT32F4xx 模拟EEPROM并通过I2C通信

AT32F4xx 模拟EEPROM并通过I2C

2022-08-26 21:00:23 524

原创 SC0082 AT32在FreeRTOS上运行LwIP协议栈

AT32 FreeRTOS LwIP协议栈

2022-08-23 21:02:42 259

原创 SC0085 AT32在RT-Thread上运行LwIP协议栈

SC0085 AT32在RT-Thread上运行LwIP协议栈

2022-08-23 20:38:51 168

原创 SC0084 AT32F407/437在UCOSIII上运行LwIP协议栈

AT32F407/437在UCOSIII上运行LwIP协议栈

2022-08-23 20:28:09 322

原创 SC0095-AT32F437使用USB挂载SD卡作为U盘使用

注: 所有project都是基于keil 5而建立,若用户需要在其他编译环境上使用,请参考AT32xx_Firmware_Library_V2.x.x\[project\at_start_xxx\templates中各种编译环境(例如IAR6/7,keil 4/5)进行简单修改即可。2) 插入Micro SD卡,去掉JP12跳线帽,连接开发板USB到主机。1) 打开SC0095源程序,下载到AT-SURF-F437开发板。演示AT32F437使用USB挂载SD卡作为U盘使用。

2022-08-22 19:57:58 441

原创 FAQ0131 AT32操作擦除 SPIM 必须注意事项说明

擦除 SPIM 非零等待区NZW

2022-08-09 21:24:55 291

原创 FAQ0131 AT32操作擦除 SPIM 必须注意事项说明FAQ0135-AT32MCU 时钟配置错误或晶振大小选择错误导致异常

AT32MCU 时钟配置错误或晶振大小选择错误导致异常

2022-08-09 21:16:35 1543

原创 AT32 QSPI SRAM使用--AT_SURF案例21

简介QSPI SRAM 也就是使用QSPI接口的SRAM,QSPI(Quad SPI)是一个6线制的SPI,其中有4根线为数据线,相比于传统的4线制SPI(2根单向数据线),理论上传输速度是4线制SPI的4倍。AT32 SUFR板载了一颗型号为LY68L6400SLI的SRAM,该SRAM的容量为8M byte,使用时需要注意跳线帽的正确设置。资源准备硬件环境:对应产品型号的AT-SURF-F437 Board软件环境:AT32F435_437_Firmware_Library_V2.x.x\p

2022-05-27 19:53:55 1296

原创 AT32红外接收--AT_SURF案例18

红外遥控是一种无线非接触式遥控,具有抗干扰能力强、功耗低、成本低等优点,常用于家用电器遥控。红外遥控原理是以红外光为载体进行发送和接收数据,发送端通过红外发射二极管发出经过调制的红外光,接收端通过红外接收二极管接收红外光,然后解调获得数据。在应用中各种系统的红外遥控原理基本相似,只是区别在于红外编码,红外遥控常用的红外编码协议有NEC、Philips RC5,当然也可以使用自定义红外编码,本次例程中使用的红外编码为NEC编码。NEC协议介绍起始码传输每一帧数据传输前都需要先传输起始位,起始位格式为9m

2022-05-27 19:32:38 252

原创 AT32 与EEPROM 通信--AT_SURF案例13

简介AT32-SUFR板载了一颗型号为24C02的EEPROM芯片,该芯片容量为256字节,使用I2C总线和AT32 MCU连接。本章节描述了如何使用AT32的I2C接口实现对EEPROM芯片的读写,并将读写结果通过串口打印出来。I2C总线(Inter-Integrated Circuit bus)是飞利浦半导体开发的一种双向两线制总线,用于不同芯片间的通讯。I2C总线是事实上的世界标准,现在已在50多家公司制造的1000多种不同IC中实施。此外,I2C总线用于各种控制架构,例如系统管理总线(SMBus

2022-05-24 19:55:19 895

转载 AN0130 AT32使用VSCode开发

AN0130 AT32使用VSCode开发本使用指南描述了使用VSCode开发、编译、下载、调试AT32 MCU的解决方法,支持AT32F全系列芯片支持型号列表:AT32F 系列目录概述................................................ 5软件安装 ........................................ 6VSCode 安装.................................. 6交叉编译工具链与 Mi...

2022-05-13 20:03:17 700

转载 雅特力AT32 USB应用整理202200511更新

雅特力AT32 USB应用整理来自于雅特力官网:如附件AN0007_AT32_IAP_using_the_USB_HID_ZH_V2.0.0.pdfAN0012_USB_MSD_IAP_ZH_V2.0.0.pdfAN0013_AT32_USB_Audio_Development_Note_ZH_V2.0.0.pdfAN0030_AT32F415_IAP_using_a_USB_host_connected_U_disk_ZH_V2.0.0.pdfAN0034_Hardware_design

2022-05-11 19:13:36 1189

原创 FAQ0124 GPIO快速翻转的注意事项

Questions:配置某 IO 口为推挽输出,并需要快速翻转该 IO 口,在 Keil 的-O0 优化等级编译出的代码运行后,发现PA口的翻转速率快,除 PA 以外的 IO 口翻转速率慢Answer:原因,Keil 在-O0 的优化等级下,翻转 PA 口部分的代码被优化,而除 PA 以外的 IO 口部分的代码未被优化。此现象与Keil 编译器的C 语言编译相关,芯片的实际行为正常。解决方法 1,将 Keil 编译器的优化等级调整到-O3 后,所有 IO 口都能正常快速翻转解决方法 2,而 Keil

2022-02-21 19:26:27 748 1

原创 AT32 I2C程序使用讲解

AT32官方BSP里面提供了I2C的使用例程,极大的方便了我们使用I2C,代码位置:BSP里面的project\at_start_f403a\examples\i2c,该路径下有以下四个demo:communication_dma -- 使用DMA进行传输communication_int -- 使用中断进行传输communication_poll -- 使用轮寻的方式传输eeprom -- eeprom 使用示例关于I2C传输数据的流程,官方已经封装了一个应用层,用户无需再关心数据传输流程,只需

2022-02-09 22:06:30 2056

原创 AT32 通过USB HID实现IAP

前言对于大多数基于闪存的系统,一项重要要求是能够在最终产品中安装固件时进行更新。此功能称为应用程序内编程(IAP)。本应用笔记的目的是提供在AT32微控制器上创建IAP by USB HID应用程序的方法。IAP_Programmer.exe上位机软件和嵌入式HID IAP示例的源代码位于BSP固件库的utilities文件夹内。支持型号列表:AT32F4 系列注:仅支持有USB外设的型号IAP 在线升级原理概述IAP(In Application Programming)即在应用编程,IAP是

2021-11-28 11:10:46 1144

原创 AT32F421-软件模拟过采样

/*ADC_OVSR:过采样率,取值:2,4,8,16,32,64,128,256*/#define ADC_OVSR 256/*ADC_shift:ADC结果右移,取值:0~8*/#define ADC_shift 4/* Private typedef -----------------------------------------------------------*//* Private define ------------------------------------...

2021-11-25 20:14:52 520

原创 AT32 I2C 2.0版新库使用分享(三)

void i2c_dma_end_transfer_set(i2c_type *i2c_x, confirm_state new_state)功能:指示当前传输是否是最后一笔数据参数:i2c_x:已经介绍过,不在赘述new_state:TRUE将要传输最后一笔数据,FALSE将要传输不是最后一笔数据例子:i2c_dma_end_transfer_set(I2C1, TRUE);将要传输最后一笔数据void i2c_dma_enable(i2c_type *i2c_x, .

2021-11-24 20:44:20 441

原创 AT32 I2C 2.0版新库使用分享(二)

void i2c_master_receive_ack_set(i2c_type *i2c_x, i2c_master_ack_type pos)功能:在主机接收模式下,用于设置函数void i2c_ack_enable(i2c_type *i2c_x, confirm_state new_state)的生效位置。该函数的作用主要是为了在主机接收模式下,在接收两个字节时,能够正确的回复NACK参数:i2c_x:已经介绍过,不在赘述pos:I2C_MASTER_ACK_CURRENT:

2021-11-21 12:26:50 1450

原创 AT32 I2C 2.0版新库使用分享(一)

试用了几天AT32的新库,特此给大家分享一些库函数的使用心得,仔细看了看库文件,每一个函数都写得有注释,函数名定得也很好,基本可以看函数名就知道这个函数是干啥的,不得不说写得很规范,按着官方给的demo,很容易上手,因为我要用到I2C,所以仔细的研究了一下,特此给大家分享一下库函数使用方法void i2c_reset(i2c_type *i2c_x)功能:通过CRM(时钟和复位管理)复位I2C外设,可以把I2C外设所以寄存器复位成初始值,参数:i2c_x:参数用来选择哪个I2C,例如

2021-11-20 11:11:51 1105

原创 AN0001 AT32 IAP 使用 USART

前言对于AT32 MCU,除了出厂固化的bootloader,用户也可以在应用程序中编写自己的bootloader程序,用于最终产品的固件更新。此功能称为应用程序内编程(IAP)。本应用笔记的目的是提供在AT32微控制器上创建IAP应用程序的一般准则。AT32微控制器可以运行用户特定的固件来对微控制器中嵌入的闪存执行IAP。此功能可以使用产品可用和支持的任何通信接口。使用自定义协议协议的USART是本应用笔记中的示例。IAP_Programmer.exe上位机软件和嵌入式IAP USART示例的源代

2021-11-15 21:09:50 213

原创 AT32 推出新库啦

今天去逛了逛AT32官网发现推出新bsp了,看着官方的说明是新库的特点是更加的轻量化,以及使用了更加简洁的位域操作尝鲜地址https://www.arterytek.com/cn/pro ... jsp?t=1636726489669使用时需要注意如果要用BSP2.0的话,需要同时更新PACK和BSP将下载好的BSP解压后,文件结构如下,总体来说和之前的库结构差不多document文件下存放着库的使用文档,里面介绍了这个库如何使用,建议大家使用的时候先看一看,方便快速上手li.

2021-11-12 22:51:10 463

原创 SC0067 AT32F403A USB Audio full-duplex

示例目的演示USB音频使用I2S全双工传输。支持型号列表:支持型号:AT32F403Axx主要使用外设列表:1快速使用方法1.1硬件资源1) AT-START-F403AV1.0开发板2) AT32_Audio_EV_V2.01.2软件资源1) SourceCoden AT32F403A_USB_Audio_full-duplex注:所有project都是基于keil 5而建立,若用户需要在其他编译环境上使用,请参考BSP_PACK_V1.x....

2021-08-31 19:50:55 197

原创 如何理解AT32的RTC以及ERTC的时钟分频

AT32 系列的单片机里面有两种RTC,一种是RTC另外一种是ERTC,两种RTC的分频值配置略有不同RTC:上图是从官方参考手册上截取的RTC内部框图,从图中我们可以看到,RTCCLK经过20位分频器RTC_DIV分频后得到日历的1Hz时钟,所以我们只需要配置RTC_DIV就行了,分频公式为RTC_CLK/(RTC_DIV+1)例如当外部晶振为32768Hz,那么配置RTC_DIV=32767就能得到1Hz时钟,32768/(32767+1) = 1Hz程序示例:RTC_SetDIV.

2021-08-29 21:35:47 807

原创 AT32 ERTC的时钟源选择

AT32的ERTC时钟源可以选择LSE、LSI、HSE,3种时钟源各有适应的场景LSE:通常使用32.768Khz的晶振优点:是该种时钟源精度最高,并且能在电池供电下、以及低功耗模式下工作缺点:需要一颗晶振,增加元件成本,增大PCB布线面积HSE:主晶振优点:该种时钟源精度也比较高,节省一颗晶振,降低了PCB布线面积缺点:不能在电池供电下、以及低功耗下模式工作LSI:典型值为40Khz,官方手册写了范围在30Khz~60KHz,优点:能在电池供电下、以及低功耗模式下工作,节省一颗...

2021-08-24 20:55:29 750

原创 浅谈AT32 ERTC和RTC区别

在雅特力的单片机里面,有两种RTC,一种叫RTC 另外一种叫ERTCRTC :是和STM32F103一样的RTC,该RTC只提供了一个简单的计数功能,具体逻辑是每秒加1,计数范围是0x00000000~0xFFFFFFFF,如果需要日历,那么还需要用户自己写秒转换成日历,或者日历转化成秒的程序ERTC:意思就是增强型RTC,在ERTC里面,逻辑就不是简单的增加计数值了,而是里面有完整的年月日时分秒,有日历逻辑,相比于RTC,ERTC不存在将日期转化成秒,或者将秒转化成日期的操作,这简化了软件的操作,更不

2021-08-22 15:40:57 879

原创 AT32看门狗WDT使用方法

AT32的看门狗是一个12位递减计数器,当看门狗递减到0时产生系统复位,使用LSI(频率大约为40Khz)作为看门狗时钟,,在应用程序中,需要不断地刷新计数器(俗称喂狗),以防止看门狗发生复位,看门狗虽然是一个很小的外设,功能也相对简单,但是对我们的设备能可靠的运行起到了很大的作用,它可以在一些意外情况(比如干扰,程序bug)导致程序跑飞时,复位mcu /* 解锁看门狗写保护*/ IWDG_KeyRegWrite(IWDG_KeyRegWrite_Enable); /* 设置分...

2021-08-16 20:57:34 778

原创 如何理解AT32的DMA弹性映射

接触雅特力的芯片有一段时间了,不得不说,相比于STM32F103有些功能做的确实挺不错的,比如AT32F403A DMA的弹性映射以下是我们所习惯的固定映射,这里兼容STM32F103的DMA固定映射,但是这种映射方式灵活性比较低,比如USART2_TX就只能使用DMA1的通道7,如果这个通道被其他外设(如I2C1_RX)使用了,那么就比较麻烦了现在AT32F403A 新增了DMA的弹性映射功能,如下表所示,那么比如USART2_TX就可以任意选择通道进行传输,只需要把下表外设的ID号告诉..

2021-08-11 21:53:49 1138

转载 FAQ0086 AT32 如何在 Eclipse 中实现分散加载

Questions:如何在Eclipse中实现分散加载?Answer:修改脚本链接文件可以将某些函数和数据编排到特定的区域内。1、 链接脚本文件一般是放在根目录下的ldscripts文件夹内, 后缀为.ld。 添加脚本链接文件的方法是“Project ->Properties -> C/C++ Build -> Setting -> Tool Settings -> “GNU ARM Cross C Linker” -> “General” ->添加脚本链...

2021-05-29 16:37:12 292

原创 FAQ0115 AT32使用AC6编译器注意事项

FAQ0115 AT32使用AC6编译器注意事项Questions:在使用 ARM Compiler version 6(AC6)时,可能会出现如下情形之一情形一 代码执行效率低 情形二 堆栈需求增加 情形三 脱机运行失败 情形四 printf 无法打印Answer:情形一 代码执行效率低可能是没有选择AC6默认优化等级–Oz image size, 而手动选择了AC5的默认优化等级-O0导致,调整为默认优化等级可解决。情形二 堆栈需求增加使用AC6编译器–O0优化等...

2021-05-25 19:56:00 533

原创 FAQ0087 AT32单片机Flash 全擦除时间说明

FAQ0087 AT32单片机Flash 全擦除时间说明Questions: Flash 进行全擦除操作,擦除时间会有个体差异, 各颗擦除时间差异性的原因是?Answer:全擦除时间与以下两者相关:(1) Tunneling oxide 厚度, 越厚需越长的全擦除时间。(2) 内部电场强度, 越弱需越长的全擦除时间。以上两者都与制程工艺相关。从以下图表可知,上述两个数据对全擦除时间所造成的影响并非成正比关系,而是指数关系。因此全擦除时间就算每颗之间呈现倍数差异,仍为合理,表示制程工艺仍控制..

2021-05-23 18:22:00 718

转载 AT32单片机移植ucos-iii最新版本V3.08.01

AT32单片机移植ucos-iii最新版本V3.08.01ucos-iii 的github地址如下:[color=var(--color-text-primary)!important]http://www.weston-embedded.comucos-iii内核的资料地址如下:https://micrium.atlassian.net/wiki/spaces/osiiidoc/overview源代码见下地址https://bbs.21ic.com/icview-3134634-1-1...

2021-05-23 17:50:16 628

原创 FAQ0048 AT32F4xx内部闪存页擦除注意事项

FAQ0029 ADC配置修改说明Questions: Motor 应用 ADC 配置修改说明AT32F403 在 MOTOR ADC1 & ADC2 各设置两个注入通道, 配置图示如下:原始配置,ADC1 有规则组在转换,当注入组插入转换会使规则组数据乱序,撞到 AT 该 Issue;Answer:稍微更改配置后, ADC1 之通道不改变, 只有 ADC2 在改变, 可避乱序之问题。即: 规则组的采样通道全部放在 ADC1 模块, 注入组全部放在 ADC2 模块;类型: MCU.

2021-05-13 20:39:41 505

原创 FAQ0049 将IAP放在非闪存起始地址的方法

FAQ0028 ADC设置的一些说明Questions: ADC 设置的一些说明Answer:范例:/* ADC1 Configuration ------------------------------------------------------*/ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //如果不是使用双 ADC, 此处需要设置为独立ADC_InitStructure.ADC_ScanMode = ENABLE;ADC_

2021-05-13 20:34:51 264

原创 FAQ0088 USB 和两路 CAN 同时使用, USB 中断向量号 Remap 说明

FAQ0027 ADC规则组多通道连续转换模式下,不停切换注入组导致规则组转换错序问题Questions:ADC 规则组多通道连续转换模式下, 不停切换注入组导致规则组转换错序问题Answer:ADC digital 内部划分2个clock domain(pclk 与 adc clk), 每个domain中有各自的state machine,这两状态机之间有相互的控制, 会涉及到信号之间穿频。 原本更新通道会结束正在转换的规则以及注入, 并按照通道设定重新转换。 而更新通道这一事件会在两个 cl..

2021-05-13 20:31:26 401

转载 FAQ0089 AT32工程在M3内核芯片上运行 使用注意事项

FAQ0089 AT32工程在M3内核芯片上运行 使用注意事项Questions:AT32 工程在 M3 内核芯片上运行进入硬件错误处理函数( HardFault_Handler)Answer:当使用AT32工程在其余M3内核芯片上运行, 需要注意由于AT32为M4内核芯片, 编译软件在M4内核基础上进行汇编, 诸如16位乘32位和32位乘32位编译器汇编出来的汇编指令不一致( 在M4内16乘位32位是SMULBB, 在M3内是MUL,M3...

2021-02-27 17:00:35 392

转载 FAQ0090 雅特力AT32F4xx系列独立PWM输出数量

FAQ0090 雅特力AT32F4xx系列独立PWM输出数量Questions:AT32F4xx 系列不同封装型号可以输出最多独立 PWM 数量Answer:AT32F4xx系列不同封装型号可以输出最多的独立PWM数量见下表, 详细的IO输出PWM引脚排列信息请参考Excel文档《AT32F4xx系列-独立PWM输出数量》。同样的封装,AT32F4xx一般比Sxx32F103输出独立PWM数量多; 比如LQFP64/ LQFP100/ LQFP144三个封装型号,Sxx32F103最多数量都是24...

2021-02-27 16:53:17 675

转载 FAQ0093 AT32更换外部晶振后BSP修改方法

FAQ0093 AT32更换外部晶振后BSP修改方法Questions:AT32 工程项目在采用非 8M 外部晶振时, 如何在 BSP 中进行修改。Answer:因示例的BSP和开发板都是基于8 MHz外部晶振来做的, 所以在实际应用中如果采用了非8 MHz的外部晶振的话, 需注意修改BSP中时钟配置以保证时钟频率的正确及稳定。 以下将介绍几点BSP修改的注意事项及步骤。1.使能宏定义在工程的system_at32f4xx.c文件中, 打开期望的或接近期望的系统时钟频...

2021-02-19 21:21:32 632

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除