在接到NUCLEO_F412ZG开发板之前,曾设想它与NUCLEO_F411RE开发板的差异应该不会很大,见到后才发现它已从F411 的小胖墩儿变成体型修长的美少年,不信就看看他们的对比图吧。当然,F412向使用者提供的可以资源也更加丰富,不信的话你看看板上供扩展使用的引脚数就看见一斑。此外为了便于使用,它在板子的背面也标注出了全部的引脚名称,这在F411上是没有的。 图1 NUCLEO_F411RE开发板 图2 NUCLEO_F412ZG开发板 除了直观的差异,下面从几个方面进行详细的对比。 在输入、输出方面的对比: 1)在输入方面,F411开发板提供了一个用户键(蓝色)和一个复位键(黑色);在输出方面,只有一个绿色LED。 2)在输入方面,F412开发板同样提供了一个用户键和一个复位键;在输出方面,有3个LED,色彩分别为红、绿、蓝。 在外部扩展方面的对比: 1)F411开发板支持Arduino和ST Morpho 2)F412开发板支持ST Zio(包含Arduino)和ST Morpho 在调试器和编程器方面,F411和F412均采用嵌入式在线调试器和编程器,且都采用ST-LINK/V2-1,但F411是采用mini-AB 连接器,而F412是采用Micro-AB 连接器。 之所以有如此的区别,其关键就在于MCU的不同,下面列出了MCU间的差异。
对NUCLEO_F412ZG开发板有了初步了解后,下面看一下加电后的初始效果。 首先,用Micro-AB 连接线来连接板上的Micro-AB 连接做和电脑的USB口。上电后,会见到通讯指示灯LD4、电源指示灯LD6及红色的LD3被点亮。在按下用户键的情况下,会依序点亮红、绿、蓝指示灯,其效果如图3~图5所示。 图3 点亮红色LED 图4 点亮蓝色LED 图5 点亮绿色LED
那如何才能用F412开发板来实现自己的设计呢? 来下载安装包Keil.STM32F4xx_DFP.2.10.0.pack,然后进行安装这样才能在MCU列表中见到STM32F412ZGT6的身影,如图6所示。 图6 添加F412芯片列表
通过原理图可以发现,3个LED指示灯的驱动方式是不一样,如图7所示。此外,得到的额外收获是明白了板上未焊接的U11应该是一个以太网信号转换芯片,CN14一个是一个以太网接口座。 图7 LED驱动电路 图8 以太网接口
根据原理图所提供的引脚连接情况,才能够设计自己的初始测试程序。但遗憾的是F412例程程序不好找。起初本打算用F411的例程去测试,但没能成功。最终是用STM32Cube_FW_F4_V1.6.0中的STM32F401RE-Nucleo例程才实现了初始程序的测试。具体的方法是打开如下例程及工程:STM32Cube_FW_F4_V1.6.0\Projects\STM32F401RE-Nucleo\Examples\GPIO\GPIO_IOToggle\MDK-ARM\main.c,然后将主函数改为如下内容,进行编译即可。 - int main(void)
- {
- HAL_Init();
- SystemClock_Config();
- __HAL_RCC_GPIOB_CLK_ENABLE();
- drive external LED */
- GPIO_InitStruct.Pin = GPIO_PIN_7;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- while (1)
- {
- HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_7);
- /* Insert delay 100 ms */
- HAL_Delay(100);
- }
- }
复制代码 为了能顺利地进行调试和下载,应对下载器类型和下载算法加以选择和设置。其中下载器类型的界面如图9所示,下载算法的选择如图10所示。经下载,可看到LD2的蓝色指示灯被点亮。 图9 设置调试器类型 图10 选取下载算法
有了成功下载的支持,就可以尝试在F412开发板上驱动OLED,其程序可以直接移植L432的程序,参见网址 https://www.stmcu.org.cn/module/forum/thread-607557-1-1.html 恰逢国庆,就以F412奉上对祖国的一份祝福吧,字模由PCtoLCD2002软件来提取,其界面如图11所示。 图11 字模提取
相应的显示函数为: - void cdz()
- {
- OLED_Clear();
- OLED_ShowCHinese(0,0,0);
- OLED_ShowCHinese(18,2,1);
- OLED_ShowCHinese(36,2,2);
- OLED_ShowCHinese(54,2,3);
- OLED_ShowCHinese(72,2,4);
- OLED_ShowCHinese(90,2,5);
- OLED_ShowCHinese(108,2,6);
- OLED_ShowCHinese(18,4,7);
- OLED_ShowCHinese(36,4,8);
- OLED_ShowCHinese(54,4,9);
- OLED_ShowCHinese(72,4,10);
- OLED_ShowCHinese(90,4,11);
- OLED_ShowCHinese(108,4,12);
- }
复制代码 经编译下载,其运行效果如图12所示。 图12 F412开发板显示效果
|