一、AT32F403ZGT6 start板
AT32F403 系列 技术手册
2018.03.19 第 1 頁 版本 1.00
基于ARM ® 32位的Cortex ® -M4F微控制器+FPU,带256 K字节至1024 K
字节内部闪存、USB、CAN、18个定时器、3个ADC、16个通信接口
功能
内核:带有FPU 的ARM®32 位的Cortex®-M4F
CPU
− 最高200 MHz工作频率,带存储器保护
单元(MPU) ,内建单周期乘法和硬件除
法
− 内建浮点运算(FPU)
− 具有DSP指令集
存储器
− 从256 K字节至1024 K字节的内部闪存
程序/数据存储器
− SPIM接口:额外提供高达16 M字节外部
SPI闪存程序数据存储器接口
− 高达96+128 K字节的SRAM
− 带4個片選外部存储器控制器(XMC)。支
持CF卡、SRAM、PSRAM、NOR和
NAND存储器
− 并行LCD接口,兼容8080/6800模式
时 钟、复位和电源管理
− 2.6至3.6伏供电和I/O引脚
− 上电/断电复位(POR/PDR)、可编程电压
监测器(PVD)
− 4至16 MHz晶体振荡器
− 内嵌经出厂调校的8 MHz的RC振荡器
(25 °C 1 %精度, 全温度2.5 %精度)
− 内嵌带校准的40 kHz的RC振荡器
− 带校准功能为RTC的32 kHz振荡器
低功耗
− 睡眠、停机和待机模式
− VBAT为RTC和后备寄存器供电
3 个12 位A/D 转换器,0.5 μs 转换时间( 多达21
个输入通道)
− 转换范围:0至3.6 V
− 三组采样和保持功能
− 温度传感器
2 个12 位D/A 转换器
DMA :12 通道DMA 控制器
− 支持的外设:定时器、ADC、DAC、
SDIO、I2S、SPI、I2C和USART
调试模式
− 串行单线调试(SWD)和JTAG接口
− Cortex®-M4F内嵌跟踪模块(ETM TM )
多达112 个快速I/O 端口
− 36/51/80/112个多功能双向的I/O口,所
有I/O口可以映像到16个外部中断;几乎
所有端口均可容忍5V输入信号
多达18 个定时器
− 多达8个16位定时器+2个32位定时器,
每个定时器有多达4个用于输入捕获/输
出比较/PWM或脉冲计数的通道和增量编
码器输入
− 多达3个16位带死区控制和紧急刹车,用
于电机控制的PWM高级控制定时器
− 2个看门狗定时器(独立的和窗口型的)
− 系统时间定时器:24位自减型计数器
− 2个16位基本定时器用于驱动DAC
多达16 个通信接口
− 多达3个I2C接口(支持SMBus/PMBus)
− 多达5个USART接口(支持ISO7816,
LIN,IrDA接口和调制解调控制)
− 多达4个SPI接口(50 M位/秒),4个均可
复用为I2S接口
− CAN接口(2.0B主动)
− USB2.0全速接口
− 多达2个SDIO接口
CRC 计算单元,96 位的芯片唯一代码
封装
− LQFP144 20 x 20 mm
− LQFP100 14 x 14 mm
− LQFP64 10 x 10 mm
− LQFP48 7 x 7 mm
选型列表
内部闪存存储器 型号
256 K字节
AT32F403CCT6, AT32F403RCT6,
AT32F403VCT6, AT32F403ZCT6
512 K字节
AT32F403CET6, AT32F403RET6,
AT32F403VET6, AT32F403ZET6
1024 K字节
AT32F403CGT6, AT32F403RGT6,
AT32F403VGT6, AT32F403ZGT6
二、外部中断实验
(1)原理图
(2)实验程序
#include "exti.h"
void my_exti_config(void)
{
GPIO_InitType GPIO_InitStructure;
NVIC_InitType NVIC_InitStructure;
EXTI_InitType EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_AFIO,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOC,ENABLE);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinsSource0);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinsSource13);
GPIO_InitStructure.GPIO_MaxSpeed=GPIO_MaxSpeed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_PD;
GPIO_InitStructure.GPIO_Pins=GPIO_Pins_0;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_MaxSpeed=GPIO_MaxSpeed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_PD;
GPIO_InitStructure.GPIO_Pins=GPIO_Pins_13;
GPIO_Init(GPIOC,&GPIO_InitStructure);
EXTI_InitStructure.EXTI_Line=EXTI_Line0|EXTI_Line13;
EXTI_InitStructure.EXTI_LineEnable=ENABLE;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;
EXTI_Init(&EXTI_InitStructure);
EXTI_ClearFlag(EXTI_Line0);
EXTI_ClearFlag(EXTI_Line13);
NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel=EXTI15_10_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStructure);
}
void EXTI0_IRQHandler(void)
{
if(EXTI_GetIntStatus(EXTI_Line0))
{
led1=!led1;
}
EXTI_ClearFlag(EXTI_Line0);
}
//void EXTI15_10_IRQHandler(void)
//{
// if(EXTI_GetIntStatus(EXTI_Line13))
// {
// led1=!led1;
// }
// EXTI_ClearFlag(EXTI_Line13);
//}
(3)、结果
通过外部中断实验触发实现LED翻转,按键按下,LED亮,按键再次按下,LED熄灭
|