查看: 908|回复: 0

[经验] 【NUCLEO-L452RE测评】+开包运行FREERTOS

[复制链接]

该用户从未签到

发表于 2021-1-20 15:35:35 | 显示全部楼层 |阅读模式
分享到:




看样子还是NUClEO板子的老样子。不过这次我信心满满我用KEIL MDK 5加STM32CUBEMX的形式。主要评估下FREERTOS。

所以一开始我在板子没到之前就动起手了,准备了两个工具:

1,一个是MDK PACK,下载前安装。

2,另一个是STM32CUBEMX,当然也是安装完毕。

STM32CUBEMX很好用,只要打开这个板子的型号就可以了。


我把FREERTOS打开,使能,选择FREERTOS加线程,我加了一个点灯线程准备备用。

而这块板子有STLINK,STLINK有虚拟串口,所以第二个我谁备往外发“HELLO EEWORLD !!!


我查看了下原理图:


对查了下数据手册:


可见PA1 和 PA2是UART2,而在STM32CUBE中正是这两个管脚(因为我选择的是板子型号)。

我把第二个线程定义为始终发“HELLO EEWORLD!!!”

我选点STM32CUBEMX中的生成代码,然后,在线程中加入几句话就轻易的实现了:

  • /* USER CODE END Header_StartDefaultTask */
  • void StartDefaultTask(void const * argument)
  • {
  •   /* USER CODE BEGIN 5 */
  •   /* Infinite loop */
  •   for(;;)
  •   {
  •                 HAL_UART_Transmit(&huart2,TxData,16,0xffff);//把TxData的内容通过uart2发送出去,长度是10,timeout的时间是最大值0xffff
  •     osDelay(10);
  •   }
  •   /* USER CODE END 5 */
  • }
  • /* USER CODE BEGIN Header_StartTask02 */
  • /**
  • * @brief Function implementing the myTask02 thread.
  • * @param argument: Not used
  • * @retval None
  • */
  • /* USER CODE END Header_StartTask02 */
  • void StartTask02(void const * argument)
  • {
  •   /* USER CODE BEGIN StartTask02 */
  •   /* Infinite loop */
  •   for(;;)
  •   {
  •     HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET);
  •                 osDelay(100);
  •                 HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_SET);
  •                 osDelay(100);
  •   }
  •   /* USER CODE END StartTask02 */
  • }

以下是发送线程的结果:


而这时闪灯也在运行,第一次用NUCLEO运行FREERTOS成功。



总结一下,以前我之所以对RTOS有点偏见是因为,它得移植,要知道得汇编我死烦汇来汇去,因为一不小心,程序出发时就是个残疾(汇编有毛病)。所以我对所有的RTOS都不怎么待见。反正老子没有用,也活得下去。渐渐我对KEIL RXT感兴趣了,因为它不用移植。但通过这次评测我明白了,STM32CUBEMX,学好了之后,FREERTOS也等于不用移植。


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-24 01:22 , Processed in 0.113931 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.