TA的每日心情 | 奋斗 2023-5-10 20:09 |
---|
签到天数: 1742 天 连续签到: 1 天 [LV.Master]伴坛终老
|
在接到NUCLEO_F412ZG开发板之前,曾设想它会与NUCLEO_F411RE开发板应该大体相仿,见到后才发现它已从F411 的小胖墩儿变成体型修长的美少年,其外观如图1所示。除了体型的差异外,其主要性能又如何呢?
1)板载STM32F412ZGT6 微控制器,采用 LQFP144 封装,1 MB 闪存,256KBSRAM2)可访问所有 STM32 输入/输出,带 ST Zio 连接器(支持Arduino Uno Revision 3 连接)和 ST morpho 扩展引脚管座3)可直接访问 ARM mbed 在线资源4)板载 ST-LINK/V2-1 调试器/编程器,带 SWD 连接器5)USB 上支持虚拟 COM 端口,大容量存储和调试端口接口6)柔性板电源7)USB OTG 或设备全速,带 Micro-AB 连接器8)符合 IEEE-802.3-2002 以太网连接器标准9)三个 LED:电源 LED、USB 通信、用户 LED10)配用户按钮和重置按钮11)32.768 kHz 晶体振荡器12)灵活的电源:ST-LINK/V2-1 USB VBUS 的 5V 电源13)外部电源:ST Zio 或 ST morpho 连接器的 3.3 V 或 7 至 12 V 电源、ST morpho 连接器的 5V 电源14)完整的免费软件 HAL 库15)支持集成开发环境 (IDE)
file:///C:UserslijingAppDataLocalTempksohtmlwps975E.tmp.jpg图1NUCLEO_F412ZG开发板
了解了它的主要性能,下面看一看加电后的初始效果。
首先,用Micro-AB 连接线来连接板上的Micro-AB 连接座和电脑的USB口。上电后,会见到通讯指示灯LD4、电源指示灯LD6及红色的LD3被点亮。在按下用户键的情况下,会依序点亮红、绿、蓝指示灯,其效果如图2所示。
图2点亮蓝色LED
那如何才能用F412开发板来实现自己的设计呢?
对于ST的老用户,你首先要在原有开发环境的基础上升级开发环境。对于使用KEIL的开发者,其具体的方法是到该网址:https://www.keil.com/dd2/pack/#/eula-container来下载安装包Keil.STM32F4xx_DFP.2.10.0.pack,然后进行安装才能在MCU列表中见到STM32F412ZGT6的身影,如图3所示。
图3 添加F412芯片列表
其次,要收集F412开发板的相关资源,如原理图和例程等。通过开发板的原理图可以发现,其3个LED指示灯的驱动方式是不一样,参见图4所示。
图4 LED驱动电路
通过原理图,可以连接连接LED指示灯的引脚连接情况,然后才好设计对应的程序。由于F412的例程不好找,就打算用F411的例程去测试,经测试使用KEIL4能将程序下载到F412开发板,点亮LD2的测试程序如下:
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);}}经下载,可见到LD2的蓝色指示灯被点亮。
在KEIL5的环境下,需自行创建工程及编写程序。此外,为了能顺利地进行调试和下载,应对下载器类型和下载算法加以配置。其下载器类型的设置界面如图5所示,下载算法的配置界面如图6所示。
图5 设置调试器类型
图6 选取下载算法
恰逢国庆,下面以OLED屏为显示器件,奉上一份对祖国的祝福。字模由PCtoLCD2002软件来提取,其界面如图7所示。
图7 字模提取
相应的显示函数为:
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); }经编译下载,其运行效果如图8所示。
图8 OLED屏显示效果 |
|