代码容量、RAM容量。其他的在程序设计上基本没什么差别。在硬件设计上就是不同封装的引脚映射的问题。
首先是频率,转换时间跟你的APB2频率有关,56兆1微秒,72兆1.17微秒。
硬件接法,以ADC123_IN2为例,它可以使用ADC1,ADC2,ADC3但是通道是2.
一般来说我们接ADC1xx_INX的引脚都可以用ADC1来控制。
至于三路采样看你的采样方式了:“同时”是不是只每启动一次AD转换就自动采集三个输入;还是系统有三路AD,可以在任意时间采集一个输入;
简单的用法是用规则组方式,比如一次启动采集三个输入的方式:先配置规则组的数量为3,然后根据硬件连接配置输入的通道,比如IN1,IN3,IN2这个顺序你可以自己安排先采集哪个通道。
如果另一种任意时间采集一个通道的方法,也是用规则组规则组数量改为1,每次打开一个通道就可以了。简单来说就是用连续转换模式,规则组模式的配置。
其他一些寄存器细节,你自己看一下参考手册吧。
1、STM32引脚输入电平的范围是ALVC, 输入小于0,输入大于2V算高电平,LV 、ALVT中 8V算低电平。
2、 5V CMOS、 HC、 AHC、 AC中, 输入大于3.5V算高电平 | | 输入小于1.5V算低电平;
3、 5V TTL 、ABT 、AHCT、 HCT、 ACT中 , 输入大于2V算高电平 | | 输入小于0.8V算低电平;
4、STM32的IO管脚有两种:TTL和CMOS,所有管脚都兼容TTL和CMOS电平。也就是说,从输入识别电压上看,所有管脚(不管是TTL管脚还是CMOS管脚)都可以识别TTL或CMOS电平。下面是摘自STM32数据手册的有关数据:
拓展资料
STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex®-M0,M0+,M3, M4和M7内核(ST's product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex®-M0 and M0+, Cortex®-M3, Cortex®-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform) 。按内核架构分为不同产品:
主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)
参考资料:百度百科-STM32
从数据手册看,STM32F103ZET6的ADC1的参考电压是外部输入的,它的31脚和32脚就是基准电压输入脚。输入模拟信号为Vref-,时,ADC的输出为000000000000,输入模拟信号为Vref+时,ADC的输出为111111111111。Vref的取值范围2.4 V≤Vref≤Vdda。
管脚100的,Vref+和Vref-是21脚和20脚。
管脚100以下的不清楚。
define一般像下面这样使用。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换。
#define 宏名 字符串
如果定义了#define M (a+b),那么在编写源程序时,所有的M在预处理时,都会被(a+b)表达式所置换。
在stm32f10x.h文件中定义了
#define PERIPH_BASE ((uint32_t)0x40000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
那么在编译前GPIOD_BASE就是((0x40000000+0x10000)+0x1400),也就是0x40011400。
在stm32f103的数据手册register map一节中,可以看下Port D的基地址正是0x40011400。
引脚一样,但比如VET6的PA4和PA5的引脚复用功能多了DAC功能,也就是说你使用PA4和5时作为DAC使用时程序需要你改下,使用没什么区别就是ROM RAM不一样而已。
封装是一样的。
建议看下手册就知道了。
本文标签:stm32f103vd数据手册