STM32F103C8T6的优点是高性能、低成本、低功耗,缺点是价格昂贵。
有意思的是STM32系列芯片上印有一个蝴蝶图像,据ST微控制器产品部Daniel COLONNA先生说,这是代表自由度,意在给工程师一个充分的创意空间。
STM32注意:
如果你正为项目的处理器而进行艰难的选择:一方面抱怨16位单片机有限的指令和性能,另一方面又抱怨32位处理器的高成本和高功耗,那么,基于 ARM Cortex-M3内核的STM32系列处理器也许能帮你解决这个问题。使你不必在性能、成本、功耗等因素之间做出取舍和折衷。
通道0对应PA0,通道1对应PA1,通道2对应PA2,通道3对应PA3,以此类推。
默认选项包括PA0的foot,ADC123_IN0,这意味着当PA0进行ADC采集引脚时,可以使用ADC1,2,3模块的channel0。STM32之ADC通道顺序设置:
1、在使用STM32的ADC多通道采样raid时,需要为所使用的每个通道配置相应的转换顺序和采样时间。
2、参数秩为通道的到道采样顺序。例如,如果通道10的秩设置为1,则表示在ADC中采样的第一个通道为ADC10。
3、如果通道ADC10、ADC11、ADC12和ADC13的通道数设置相同,那么DMA输出到内存的4个通道的值将是不确定的。
4、设置好信道采样序列后,DMA终端可以准确输出各信道的采样值。
注意事项:
阈值和触发水平通常分别是Vcc的三分之二和三分之一。这些触发水平可以用来改变控制(PIN5)电压终端。当触发器(PIN2)的输入低于触发电平时,触发器(PIN3)的输出升高。如果高于触发电平的触发输入和阈值的输入阈值都高于该电平,则触发器复位回低电位。
STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。
基本参数
类别:集成电路(IC)
家庭:嵌入式-微控制器
总线宽度:32-位
速度:72MHz
外围设备:DMA,电机控制PWM,PWM,温度传感器。
输入/输出数:37
程序存储器容量:64KB (64K x 8)。
程序存储器类型:FLASH
RAM容量:20K x 8
电压-电源(Vcc/Vdd):2 V ~ 3.6 V。
模数转换器:A/D 10x12b。
振荡器型:内部
其他参数
工作温度:-40°C ~ 85°C。
封装/外壳:48-LQFP
高度:1.4 mm
长度:7 mm
包装:托盘
文档 STM32F103C8 View All Specifications。
Rohs Lead free / RoHS Compliant。
其他相关文件 STM32F103C8 View All Specifications。
产品培训模块
标准包装 250
核心处理器 ARM® Cortex™-M3。
核心尺寸 32-Bit
速度 72MHz
连接 CAN, I²C, IrDA, LIN, SPI, UART/USART, USB。
外设 DMA, Motor Control PWM, PDR, POR, PVD, PWM, Temp Sensor, WDT。
I / O的数量 37
程序内存大小 64KB (64K x 8)。
Program Memory 型 FLASH。
EEPROM大小 -
RAM大小 20K x 8
- 电源电压(VCC / VDD) 2 V ~ 3.6 V。
数据转换器 A/D 10x12b。
Oscillator 型 Internal。
操作温度 -40°C ~ 85°C。
包/盒 48-LQFP
包装材料 Tray
包装 48LQFP
设备核心 ARM Cortex M3。
姓 STM32F
程序存储器类型 Flash
程序存储器大小 64 KB
最大速度 72 MHz
数据总线宽度 32 Bit
RAM大小 20 KB
工作电源电压 2.5|3.3 V。
工作温度 -40 to 85 °C。
最大功率耗散 363 mW
特殊功能 CAN Controller。
接口类型 CAN/I2C/SPI/USART/USB。
片上ADC 2(10-chx12-bit)。
可编程输入/输出数 37
计时器数 4
看门狗 2
标准包装 Trays
产品种类 ARM Microcontrollers - MCU。
RoHS RoHS Compliant。
核心 ARM Cortex M3。
最大时钟频率 72 MHz
数据RAM大小 20 KB
工作温度范围 - 40 C to + 85 C。
封装/外壳 LQFP
安装风格 SMD/SMT
A / D位大小 12 bit。
A / D通道 10
长度 7 mm
最高工作温度 + 85 C
最低工作温度 - 40 C
封装 Tray
信息处理器系列 STM32F103x。
系列 STM32
工厂包装数量 250
电源电压 - 最大 3.6 V。
电源电压 - 最小 2 V
匹配代码 STM32F103C8T6。
USB 1
单位包 250
标准的提前期 16 weeks。
T(A )分 -40°C
I²C号 2
总线宽度 32Bit
无铅Defin RoHS-conform。
ROM的类型 FLASH
最大No.ADC 10channels。
T(A )最大 85°C
最大的ADC解析度 12Bit。
最大No.Timer 4
数字I / O 37pins
U( CC)最大 3.6V
最大号的PWM 12
SPI数 2
最小起订量 1
CAN数 1
频率(最大) 72MHz
U( CC )闵 2V
ROM大小 64KByte
核心处理器 ARM® Cortex™-M3。
核心规格 32-Bit
振荡器型 Internal
数据转换器 A/D 10x12b。
连通性 CAN, I²C, IrDA, LIN, SPI, UART/USART, USB。
I / O针脚数 37
电压 - 电源(Vcc / VDD) 2 V ~ 3.6 V。
周边设备 DMA, Motor Control PWM, PDR, POR, PVD, PWM, Temp Sensor, WDT。
速度 72MHz
其他名称 497-6063
RoHS指令 Lead free / RoHS Compliant。
ADC通道 10
ADC分辨率 12bit
的ADC 2(10 x 12 bit)。
外形尺寸 7.2 x 7.2 x 1.45mm。
身高 1.45mm
指令集架构 RISC
最大频率 72MHz
CAN最大通道数 1
以太网的最大通道数 0
I2C最大通道数 2
林最大通道数 0
PCI最大通道数 0
SPI最大通道数 2
UART的最大通道数 0
USART的最大通道数 3
安装类型 Surface Mount。
ADC的单位数 2
的PWM单元数 1
包装类型 LQFP
引脚数 48
脉冲宽度调制 1(16 bit) (Motor Control)。
PWM分辨率 16bit
定时器分辨率 16bit
定时器 3 x 16 bit
典型工作电源电压 2 → 3.6 V。
USB通道 1 x Device。
宽度 7.2mm
频率(最大) 72 MHz
总内部RAM大小 20KB kB。
安装 Surface Mount。
工作温度范围 -40C to 85C。
计时器数 - 通用型 4
工作温度(最大) 85C
工作温度(最小值) -40C
设备核心尺寸 32 b
工作温度分类 Industrial。
CPU系列 STM32
可编程 Yes
#的I / O (最大) 37。
弧度硬化 No
工作电源电压(典型值) 2.5/3.3 V。
工作电源电压(最小值) 2 V。
工作电源电压(最大值) 3.6 V。
频率 72 MHz
建筑 :ARM Cortex-M3。
RAM Memory Size :20KB。
CPU Speed :72MHz。
No. of I/O's :37。
Digital IC Case Style :LQFP。
No. of Pins :48。
Embedded Interface Type :CAN, I2C, SPI, USART, USB。
Supply Voltage Min :2V。
Supply Voltage Max :3.6V。
MSL :MSL 3 - 168 hours。
SVHC :No SVHC (20-Jun-2013)。
Base Number :(ARM Cortex) STM32。
时钟频率 :72MHz
Controller Family/Series :STM32。
闪存容量 :64KB
IC Generic Number :32F103C8。
内存类型 :Flash
No. of ADC Inputs :10。
No. of Bits :32。
No. of PWM Channels :1。
No. of Timers :4。
Number of bits In Timer :16。
Operating Temperature Max :85°C。
Operating Temperature Min :-40°C。
Serial Comms :2xSPI, 2xI2C, 3xUSART, USB, CAN。
Supply Voltage Range :2V to 3.6V。
端接类型 :SMD
Weight (kg) 0.0003。
Tariff No. 85411000。
案例 LQFP48
Flash memory capacity 64kB。
Kind of architecture Cortex M3。
Number of inputs/outputs 37。
Multiplicity 1
Integrated circuit type ARM microcontroller。
Gross weight 2.11 g。
时钟频率 72MHz
电源电压 2...3.6V DC。
SRAM memory capacity 20kB。
Collective package [pcs] 250。
spg 250
associated RE471。
LEAPER-48
STM3210B-PRIMER。
STM3210B-SK/HIT。
STM3210B-SK/RAIS。
DATAMAN 48PRO+
More>
stm32f103c8t6能接44个传感器.。
STM32F103C8T6单片机采用LQFP48封装设计,其中A口有A0-A15共16个接口,B口有B0-B15共16个接口,C口有C13-C15共3个接口,D口有D0-D1共两个接口。
扫描隧道显微镜(Scanning Tunneling Microscope, 缩写为STM)是一种扫描探针显微术工具,扫描隧道显微镜可以让科学家观察和定位单个原子,它具有比它的同类原子力显微镜更加高的分辨率。STM使人类第一次能够实时地观察单个原子在物质表面的排列状态和与表面电子行为有关的物化性质,在表面科学、材料科学、生命科学等领域的研究中有着重大的意义和广泛的应用前景,被国际科学界公认为20世纪84年代世界十大科技成就之一。隧道针尖的结构是扫描隧道显微技术要解决的主要问题之一。针尖的大小、形状和化学同一性不仅影响着扫描隧道显微镜图像的分辨率和图像的形状,而且也影响着测定的电子态。针尖的宏观结构应使得针尖具有高的弯曲共振频率,从而可以减少相位滞后,提高采集速度。如果针尖的尖端只有一个稳定的原子而不是有多重针尖,那么隧道电流就会很稳定,而且能够获得原子级分辨的图像。针尖的化学纯度高,就不会涉及系列势垒。例如,针尖表面若有氧化层,则其电阻可能会高于隧道间隙的阻值,从而导致针尖和样品间产生隧道电流之前,二者就发生碰撞。制备针尖的材料主要有金属钨丝、铂-铱合金丝等。钨针尖的制备常用电化学腐蚀法。而铂- 铱合金针尖则多用机械成型法,一般 直接用剪刀剪切 而成。不论哪一种针尖,其表面往往覆盖着一层氧化层,或吸附一定的杂质,这经常是造成隧道电流不稳、噪音大和扫描隧道显微镜图象的不可预期性的原因。因此,每次实验前,都要对针尖进行处理,一般用化学法清洗,去除表面的氧化层及杂质,保证针尖具有良好的导电性。
清单
STM32F103C8T6 1个,Jlink下载线 1根。
MG90S舵机 1个
12V电源 1个,12V转5V降压模块(给舵机供电) 1个。
杜邦线数根
MG90S舵机
如图所示,舵机有三根线,红色接5V正极,黑色接地;黄色为信号线,接收PWM信号。
实物图
输出PWM控制舵机
STM32控制舵机,总的来说是向舵机信号线发送周期为20ms的PWM(Pulse Width Modulation 脉冲宽度调制)信号来控制舵机转角,PWM脉冲的占空比决定了舵机的转角位置,对应关系如下图;
STM32靠定时器TIM实现PWM信号的输出,STM32有多个定时器,分为通用定时器和高级定时器,每个通用定时器都可以输出4路PWM,本文采用TM2_CH4,及定时器2的第4路PWM;对应STM32F103C8T6上的PB11引脚;
创建工程输出PWM
本文使用STM32CubeMX创建工程,更加简单高效,即便对单片机不熟悉也可操作成功;
一、打开STM32CubeMX,新建一个工程,搜索并选择STM32F103C8,然后start project;
二、进行基本设置,配置RCC、SYS、HCLK。
RCC -> 设置高速外部时钟HSE 选择外部时钟源。
SYS -> 选择Debug方式 serial wire。
HCLK -> 设置为72MHZ。
三、设置定时器
选择TIM2
选择内部时钟源
设置Channel4为PWM模式。
右侧对应管脚自动设置为复用模式。
设置定时器参数
控制舵机我们需要设置PWM输出一个周期时间为20ms的信号,定时器时钟为72Mhz。
预分频Prescaler设置为720-1,则单周期为72M/(Prescaler + 1) = 100Khz(0.01ms)
以20ms为周期,则Counter Period为20ms/0.01ms - 1 = 1999。
此处可设定默认脉冲宽度为0.5ms,及0.5/20*2000 = 50。
四、接下来设置输出格式
添加工程名PWM
修改IDE为MDK-ARM V5。
在Code Genetator中设置包含库与工程格式。
至此STM32CubeMX已设置完成,接下来GENERATE CODE,并打开文件;
在main函数中启动定时器,并输出一定的脉冲的PWM信号即可驱动舵机;
五、修改代码
在main.c文件相应位置处添加如下代码。
启动PWM输出
输出PWM信号
/* USER CODE BEGIN Includes */。
#include "stdio.h"。
/* USER CODE END Includes */。
/* USER CODE BEGIN 2 */。
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4); //启动定时器。
int compareValue = 150; //将compareValue设置为50、150、250分别对应0°、90°、180°。
/* USER CODE END 2 */。
/* Infinite loop */。
/* USER CODE BEGIN WHILE */。
while (1)
{
/* USER CODE END WHILE */。
/* USER CODE BEGIN 3 */。
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, compareValue); //输出PWM信号。
HAL_Delay(10);。
}
/* USER CODE END 3 */。
登录后复制

添加完以上代码之后,编译,然后通过JLink将程序LOAD到STM32F103C8T6,将舵机信号线连接PB11(TIM2_CHANNEL4)口,并接上电源,舵机即可转动到指定角度;由以上定时器设定可知,compareValue值50、150、250 对应 0.5ms、1.5ms、2.5ms 对应 0°、90°、180°;若想让舵机连续转动,在50~250内循环改变compareValue值即可;
六、接线
开始时用单片机的5V输出给舵机供电,舵机哒哒哒响,但是不转,怀疑是供电不给力,单独供电后驱动成功;
JIink连接电脑和单片机,下载程序到单片机并给单片机供电。
舵机黄色信号线接STM32F103C8T6引脚PB11,接收PWM信号。
舵机红色电源线接稳压板5V输出正极,舵机黑色地线需与单片机地相连。
调试
实操中可能会出现各种各样的问题,以下有几种调试方法。
一、舵机测试
调试模块一端接电,一段接舵机,手动模式下,舵机会跟着旋钮同步旋转,可以用来测试舵机是否健康;
二、串口调试助手
可下载串口调试助手,用ttl转USB模块连接电脑,在特定位置进行打印输出,检查程序是否按预设运行。
stm32