STM32F30x是ST公司推出的基于Cortex-M4内核的高性能MCU,主要面向于模拟外设应用和电机控制设备,其拥有大量针对模拟应用和电机控制特有的片上资源和外设。 今天介绍的就是STM32F30x系列的一款开发板——Nucleo F303RE,是ST公司Nucleo-64系列开发板中的一员,在家族中的位置如图所示:
1. 开发板外观
万年不变的白色透明塑料外壳,不知道小伙伴们有没有看腻。 拆开几个特写照
正面是主要元件和插接件
背面没什么东西,就是些焊盘电阻和排针
来个不一样的角度,好像也没什么特别的。 2. 板载资源 看完了外观,我们再来看内在,看看开发板提供了那些资源:
STN32F303RE LQFP64封装MCU Arduino Uno R3 接口 ST Morpho接口 板载ST-LINK V2-1:SWD调试器,大容量存储器,虚拟串口 多种电源:USB,外部VIN,外部5V和3.3V 三个LED,其中一个用户LED 用户按键,复位按键 支持MDK,IAR和基于GCC的其他类等多种编程IDE和Mbed在线编程 接下来就是真正的猪脚啦,开发板的核心,主控MCU:
3. 芯片特性 STM32F303RET6,LQFP 64引脚封装 ARM CortexM4内核,带浮点运算单元和DSP指令 硬件除法器,MPU 512KB flash + 80KB SRAM 14个定时器 CAN,I2C,USART,SPI等通信接口 看到这里,好像也没什么特别的,为什么说是面向模拟应用和电机控制的呢?接着看下面的外设资源: 4 个ADC,最多达40个通道,这是不是很牛A了,一般就1个最多两个,16通道 2 个DAC,其他系列都是一个或者没有 7 个超快速轨到轨模拟比较器,这个就更加牛C哄哄了 4 个可编程增益运算放大器,我已经无法用语言形容了 最多24 个通道可支持触摸按键和旋转触摸传感器 最多3个高级定时器以用于电机控制(100引脚以上,64引脚2个) 看了以上功能,你还会怀疑题目的正确性吗?以上资源配合FPU浮点运算和DSP指令的高性能运算处理能力,对于模拟应用,这一系列的MCU可以说是再适合不过了。 说了那么多,一切都是空谈,下面我们就来测试一下。 4. 例程测试 首先,按照上一篇**“STM32F030——32位MCU的低价新宠”中讲述的方法,安装好STM32CUBEMX和STM32CUBEF3,安装好后是这样子的,各个文件夹的内容如图所示
先看一个简单的例子,选择喜欢的IDE打开STM32Cube_FW_F3_V1.6.0\Projects\STM32F303RE-Nucleo\Examples\GPIO\GPIO_EXTI下的工程,
可以看到这个例程首先初始化HAL库,接着初始化了LED和系统时钟,最后配置EXTI外部中断,等待中断到来,具体看看中断:
开发板上按键所接的引脚被配置为上升沿触发中断模式,配置了中断优先级,最后使能中断。void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)是中断回调函数,当中断发生后会调用该函数,函数里做的就是反转用户LED。 所以整个例程实现的功能就是:用户按一下按键,LED就翻转一次(如灭变亮),再按一次就再翻转一次(如亮变灭)。 编译工程,下载实际测试一下:
下载完之后记得按一下黑色复位按键,程序就开始运行,结果与前面分析的一样,按一下按键LED就亮,再按一次灭,如此循环!
下面再看一个高级一点的例子,定时器产生PWM波形。PWM波常用于电机控制,LED调光灯场合。
|