首先,很有幸能获得这次评测NUCLEO-F410RB的机会晒一下收到的板子~
除了芯片,与其他的Nucleo一样。STM32 Nucleo板遵循精益方法,是原型开发及社区使用的理想工具选择。Arduino™连接器和STMorpho连接器方便用户轻松使用应用相关的附加硬件进行扩展。MCU的所有I/O都能方便访问,该板自带HAL库,可工作于IAR、Keil、基于CCC的IDE以及所有mbed™在线IDE。
NUCLEO全系大观:
NUCLEO下涵盖的MCU类型十分丰富,今年ST更推出了NUCLEO32,丰富了NUCLEO家族,为使用者提供了更多的选择。
F4产品线大观:
ST将F4分成3个产品线,其中410处于入门级产品。
F410RB芯片功能介绍:
STM32F410x8 / B是基于高性能ARM Cortex M4®®- 32位RISC核心的运行频率高达100 MHz的芯片。芯片采用具有单精度浮点单元(FPU)的CORTEX®- M4内核,支持所有ARM单精度数据处理指令和数据类型。它还实现了一套完整的DSP指令和存储器保护单元(MPU),提高了应用程序的安全性。
STM32F410x8 / B属于STM32的动态效率™产品线(与产品相结合的功率效率、性能和集成),新添加一个创新功能称为批量采集模式(BAM)使数据传输降低更多的功率消耗。
STM32F410x8 / B将高速嵌入式存储器(128 KB的闪存,32字节的SRAM)和增强的I/O和外设连接到两APB总线的范围,一个AHB总线和一个32位的多层AHB总线矩阵。
所有设备提供一个12位的ADC,12位DAC、低功耗RTC,三个通用16位定时器,用于电机控制的PWM定时器,一个通用32位定时器和一个16位低功耗定时器。他们还具有标准和先进的通信接口。
STMF410RB功能框图:
410RB新增了BAM模式和一个低功耗定时器,让低功耗又向前迈进一步,从该图看410比较适合应用于传感器和测试测量场合,丰富了F4产品线。
NUCLEO是可以通过虚拟盘符给单片机下载程序的,不需要ST-LINK驱动和下载软件的。将板子与电脑相连,,,
结果,呵呵哒。
这种状态时无法给"U盘"导入文件的,但是插上别的NUCLEO是没问题的,应该不是电脑的问题。这事全新的NUCLEO,出厂时应该是有测试的,所以板子应该不会有问题,故,初步断定是ST-LINK的固件有问题了,上官网下载固件。。。
解压下载的压缩包,找到这个文件
打开。。。连接设备。。
可见当前版本是J24版本,点击YES>>>>,升级到J25版本
---------------
重新插一下板子,可以看到,虚拟盘符已经正常了。
然后,可以编程了
然后,我又想多了。。我的KIEL需要升级pack,点这个东西
出来这个。。
先点击左边的F4系列,然后在右侧会新增一个F4xx_DFP,点击Update,等待下载完成然后更新即可
完成更新之后,在STM32F4xx_DFP的文件夹下会多一个2.6.0版本的F4 pack
在Device列表里面已经有了410这个选项
现在可以开始编程工作了,
这里要说明一点,该工程我是在411RE的工程模板上修改的。
因为是寄存器代码,所以需要先做点准备工作。。
找到官方给的芯片启动汇编文件
复制startup_stm32f410rx.s文件到模板的sys目录下,并将只读属性改掉,后面需要修改代码
建立工程,设置分组
向分组内添加文件,然后把之前模板包涵的头文件换成stm32f410xx.h
再添加头文件路劲
随后需要修改启动汇编代码
修改如下
完成后点击编译,编译时出错,错误如下
原因是F411RE有AHB2总线,而F410RB没有
F411RE的系统总线框图
F410RB的系统总线框图
所以这里只需要把出错这行代码删去就行了。
410的系统总线速度和411是一样的,外设的分频设置暂时不予考虑。
再编译一次,没有错误和警告。
主程序代码如下
- #include <sys_f4.h>
- int main(void)
- {
- SYSTEMHARD();
- IOset(GPIOA,0x400,0x20,1,3,0,0,1);
- while(1)
- {
- GPIOA->BSRR=(u32)0x20;
- ysm(50);
- GPIOA->BSRR=(u32)0x20<<16;
- ysm(250);
- }
- }
复制代码仅仅是一个闪灯程序,但是现在没有生成可用于下载到单片机的hex文件或是bin文件。
这里因为我们要使用NUCLEO的虚拟盘符下载方式,所以必须要用bin文件
在keil里生成bin文件只需简单两步即可完成
option for target -> User
勾选After Build/Rebuild,输入fromelf.exe --bin -o "$L@L.bin" "#L" 设置完成后再次编译,就能生成bin文件
然后打开工程文件夹下的Objects文件夹,可以找到编译生成的bin文件
下载方式自然是十分简单了
鼠标右击,发送到移动盘符即可
可以看到程序正常运行。
谢谢阅读,
代码里可能有挺多不足的地方,还请大家指正