第一步、赏玩 <FreeRtos + USART>
时间:10-02
整理:3721RD
点击:
赏!
上靓照:
标清小图发两个
板子介绍:
->
板载ST-Link的USB接口和nucleo-64不一样,改成了当下更为流行的USB-Micro,妈妈再也不用担心我找不到USB线了。
开发板硬件资源框图:
板上的Zio-Connector看着就像一个超大号的Arduino接口,应该是Arduino的爸爸,哈哈
给出了一个USB-OTG接口,USB口也是Micro-USB,可以方便用户进行USB试用和调试。
因为F412没有以太网控制器,故板上的以太网硬件没有给出。
file:///C:\Users\ShenJiawei\AppData\Roaming\Tencent\Users\1716094642\QQ\WinTemp\RichOle\IJ4$Q}~_NW2%TITDE~BEX%C.png
此处跳线是选择ST-Link的MCO输出作为F412的外部时钟输入,默认是连接MCO的,板上没有给出外部高速晶振。若你想自己焊一个晶振,那么需要将这个跳线去除。
CN4的两个跳线帽按图示连接的时候ST-Link连接至板载MCU即STM32F412,若把它门拔下,则可作为ST-LINK给其他STM32下载程序。要是你手头缺ST-Link的话还可以把板载下载器掰下来使用,NULCEO板载下载器还带虚拟串口,调试使用的时候十分方便。
file:///C:\Users\ShenJiawei\AppData\Roaming\Tencent\Users\1716094642\QQ\WinTemp\RichOle\)4])(@4`HU0K@G}80BLIDMR.pngfile:///C:\Users\ShenJiawei\AppData\Roaming\Tencent\Users\1716094642\QQ\WinTemp\RichOle\)4])(@4`HU0K@G}80BLIDMR.png
单片机的PD8、PD9(USART3)连接至下载器的RX、TX端
这是板上的3个LED,那个绿灯连接的运放我是没找到在哪,可能是我不认识,,,,有知道的告诉我一下。
好吧,板子就先赏到这里。
玩!
我一直都是用寄存器开发的,这回耍一耍CUBEMX,不得不说,确实挺方便!
进入软件,新建工程
选择板子
体验官方板子真心十分方便,,,,
使用FREERTOS
选择外部时钟
打开USART3
时钟配置
project_setting
其它都使用默认即可,IO口的配置和选择也使用默认即可
生成工程..
在freertos.c中添加如下几个任务
修改StartDefaultTask任务
编译后下载至开发板,实验中用到的资源:1、用户按键;2、三个LED;3、USART3
运行效果:
1、三个LED分别以0.5HZ,1HZ,2HZ的频率闪烁
2、串口输出芯片运行时间
3、串口输出按键事件和按下时间
结语:
开发板设计还是很独到的,引出了片上所有的可用IO,并在Zio-Connector对大部分的片上外设做了规则引出,方便用户体验试用。下载器和开发板的一体化设计方便用户下载和调试程序,总之,板子十分诱人,没有获得此次试用机会的小伙伴可以买一个玩玩,非常棒,F412的板上资源也相当丰富,可以满足多数的开发需求,尤其在传感器和物联网方向。
最后,开箱体验就到这里了。谢谢~
上靓照:
标清小图发两个
板子介绍:
->
板载ST-Link的USB接口和nucleo-64不一样,改成了当下更为流行的USB-Micro,妈妈再也不用担心我找不到USB线了。
开发板硬件资源框图:
板上的Zio-Connector看着就像一个超大号的Arduino接口,应该是Arduino的爸爸,哈哈
给出了一个USB-OTG接口,USB口也是Micro-USB,可以方便用户进行USB试用和调试。
因为F412没有以太网控制器,故板上的以太网硬件没有给出。
file:///C:\Users\ShenJiawei\AppData\Roaming\Tencent\Users\1716094642\QQ\WinTemp\RichOle\IJ4$Q}~_NW2%TITDE~BEX%C.png
此处跳线是选择ST-Link的MCO输出作为F412的外部时钟输入,默认是连接MCO的,板上没有给出外部高速晶振。若你想自己焊一个晶振,那么需要将这个跳线去除。
CN4的两个跳线帽按图示连接的时候ST-Link连接至板载MCU即STM32F412,若把它门拔下,则可作为ST-LINK给其他STM32下载程序。要是你手头缺ST-Link的话还可以把板载下载器掰下来使用,NULCEO板载下载器还带虚拟串口,调试使用的时候十分方便。
file:///C:\Users\ShenJiawei\AppData\Roaming\Tencent\Users\1716094642\QQ\WinTemp\RichOle\)4])(@4`HU0K@G}80BLIDMR.pngfile:///C:\Users\ShenJiawei\AppData\Roaming\Tencent\Users\1716094642\QQ\WinTemp\RichOle\)4])(@4`HU0K@G}80BLIDMR.png
单片机的PD8、PD9(USART3)连接至下载器的RX、TX端
这是板上的3个LED,那个绿灯连接的运放我是没找到在哪,可能是我不认识,,,,有知道的告诉我一下。
好吧,板子就先赏到这里。
玩!
我一直都是用寄存器开发的,这回耍一耍CUBEMX,不得不说,确实挺方便!
进入软件,新建工程
选择板子
体验官方板子真心十分方便,,,,
使用FREERTOS
选择外部时钟
打开USART3
时钟配置
project_setting
其它都使用默认即可,IO口的配置和选择也使用默认即可
生成工程..
在freertos.c中添加如下几个任务
- /* USER CODE BEGIN Application */
- static void LED_GREEN_Thread(void const * argument)
- {
- while (1)
- {
- osDelay(1000);
-
- LED_con(LED_GREEN,LED_Toggle);
- }
- }
- static void LED_RED_Thread(void const * argument)
- {
- while (1)
- {
- osDelay(250);
-
- LED_con(LED_RED,LED_Toggle);
- }
- }
- static void LED_BLUE_Thread(void const * argument)
- {
- while (1)
- {
- osDelay(500);
-
- LED_con(LED_BLUE,LED_Toggle);
- }
- }
- u8 Button_State = 0 , Button_event = 0;
- u32 Button_Time = 0;
- static void Button_Thread(void const * argument)
- {
- u8 Last_Button_State = 0;
-
- while (1)
- {
- if(GPIOC->IDR & Px13_OB)
- {
- Button_State = 1;
- if(Button_State != Last_Button_State)
- {
- Last_Button_State = Button_State;
- Button_Time = HAL_GetTick();
- Button_event = 1;
- }
- }
- else
- {
- Button_State = 0;
- if(Button_State != Last_Button_State)
- {
- Last_Button_State = Button_State;
- Button_event = 2;
- if(HAL_GetTick() > Button_Time) Button_Time = HAL_GetTick() - Button_Time;
- else Button_Time = 0xFFFFFFFFU - Button_Time + HAL_GetTick();
- }
- }
- }
- }
- static void System_Report_Thread(void const * argument)
- {
- u32 systime = 0;
-
- printf("/********?DD?μ?×ó·¢é?ó???ì3ìá1?μ?ê?ó??ú?á£?********/\n\n");
- printf("/******** Thanks for STMicroelectronics ! ********/\n\n");
-
- while (1)
- {
- if(Button_event == 1)
- {
- Button_event = 0;
- printf("\nButton is pressed .");
- }
- else if(Button_event == 2)
- {
- Button_event = 0;
- printf("\n\nButton pop up .\n\nButton for %d ms.\n\n",Button_Time);
- }
- if(systime < (HAL_GetTick() / 1000))
- {
- systime = HAL_GetTick() / 1000;
- if(Button_State == 0) printf("The STM32F412ZG MCU kenel has been running for %d seconds...\n",systime);
- else printf(".");
- }
- }
- }
修改StartDefaultTask任务
编译后下载至开发板,实验中用到的资源:1、用户按键;2、三个LED;3、USART3
运行效果:
1、三个LED分别以0.5HZ,1HZ,2HZ的频率闪烁
2、串口输出芯片运行时间
3、串口输出按键事件和按下时间
结语:
开发板设计还是很独到的,引出了片上所有的可用IO,并在Zio-Connector对大部分的片上外设做了规则引出,方便用户体验试用。下载器和开发板的一体化设计方便用户下载和调试程序,总之,板子十分诱人,没有获得此次试用机会的小伙伴可以买一个玩玩,非常棒,F412的板上资源也相当丰富,可以满足多数的开发需求,尤其在传感器和物联网方向。
最后,开箱体验就到这里了。谢谢~
赞一个
真棒。使用了freeRTOS操作系统