【NUCLEO-L452RE测评】+开包运行FREERTOS
<div class='showpostmsg'> 本帖最后由 ddllxxrr 于 2020-12-10 21:13 编辑<p>昨天其实就到了,我的菜鸟果果也显示到了,可到了老子拿快递时,确实没看到,今天看到了。马不停蹄。拿出来晒晒。</p>
<p> </p>
<p></p>
<p></p>
<p>看样子还是NUClEO板子的老样子。不过这次我信心满满我用KEIL MDK 5加STM32CUBEMX的形式。主要评估下FREERTOS。</p>
<p>所以一开始我在板子没到之前就动起手了,准备了两个工具:</p>
<p>1,一个是MDK PACK,下载前安装。</p>
<p>2,另一个是STM32CUBEMX,当然也是安装完毕。</p>
<p>STM32CUBEMX很好用,只要打开这个板子的型号就可以了。</p>
<p></p>
<p>我把FREERTOS打开,使能,选择FREERTOS加线程,我加了一个点灯线程准备备用。</p>
<p>而这块板子有STLINK,STLINK有虚拟串口,所以第二个我谁备往外发“HELLO EEWORLD !!!</p>
<p> </p>
<p>我查看了下原理图:</p>
<p></p>
<p>对查了下数据手册:</p>
<p></p>
<p>可见PA1 和 PA2是UART2,而在STM32CUBE中正是这两个管脚(因为我选择的是板子型号)。</p>
<p>我把第二个线程定义为始终发“HELLO EEWORLD!!!”</p>
<p>我选点STM32CUBEMX中的生成代码,然后,在线程中加入几句话就轻易的实现了:</p>
<pre>
<code>/* 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 */
/**
* <a href="home.php?mod=space&uid=159083" target="_blank">@brief</a> 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 */
}
</code></pre>
<p>以下是发送线程的结果:</p>
<p></p>
<p>而这时闪灯也在运行,第一次用NUCLEO运行FREERTOS成功。</p>
<p> </p>
<p> </p>
<p>总结一下,以前我之所以对RTOS有点偏见是因为,它得移植,要知道得汇编我死烦汇来汇去,因为一不小心,程序出发时就是个残疾(汇编有毛病)。所以我对所有的RTOS都不怎么待见。反正老子没有用,也活得下去。渐渐我对KEIL RXT感兴趣了,因为它不用移植。但通过这次评测我明白了,STM32CUBEMX,学好了之后,FREERTOS也等于不用移植。</p>
<p> </p>
<p>对于我这个只用标准库编程的老顽固来说这次评测对我感触太大,我想重新考虑一哈,以后的路怎么走。</p>
<p> </p>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>STM32CubeMX还有专门的Nucleo板子的配置哦。</p>
w494143467 发表于 2020-12-11 13:27
STM32CubeMX还有专门的Nucleo板子的配置哦。
<p>有,只要选对你的开发板,基本功能的管脚定义都在上边了,根本就不用自己设。</p>
<p>预定义BSP,谢谢分享。</p>
页:
[1]