实验设计:通过cubemxide生成freertos工程,然后创建一个 pc13 led灯间隔200ms闪烁的任务。非常遗憾的是proteus8.9仿真失败,实物上没有问题,但还是把流程过一遍。 一、原理图 实物是淘宝上stm32f103 c8t6的核心板,proteus上没有这个芯片,这里图上大概表示一下,用的是核心板自带的pc13引脚的led灯。 二、cubemxide配置 1.RCC如之前工程一样配置 2、配置SYS timebase Source不要使用systick,自己选择一个定时器,我这里选择的是TIM2 3.GPIO将PC13配置为GPIO_output,如图所示。 4.在middleware中开启freertos,选择CMSIS_V1,选择V2应该也可以。然后打开Tasks and Queues界面。 5.在Tasks and Queues界面点击add按键,然后如下图创建任务myTask02。有一个默认任务,我们只需再建一个。参数配置基本都是默认的。 6.选择文件夹,然后点击generate code 7.打开main.c,寻找函数void StartTask02(void const * argument),将其for循环内容更换为如下代码。
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
osDelay(200);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
osDelay(200);
8.设置输出hex文件,然后build all。将生成的hex文件烧录进板子。
**专栏总结:**经过10章学习,基本过了一遍stm32基本功能,freertos也是比较复杂的,但通过cubemxide,可以直接使用。freertos/ucos想要具体学习,推荐野火官网的教程,写的非常详细,多达千页的pdf,不是几章博客可以讲明白的。但是简单应用逛逛csdn足矣,毕竟stm官方帮我们省去了移植步骤。
**对新手的建议:**基础问题看csdn,进阶把st官网Description of STM32F1 HAL and low-layer drivers.pdf 仔细过一遍,这是hal库api文档。再进阶就是freertos、ucos了,把正点原子或者野火的教程过一遍。
**就业:**学到上述水平找工作只能找到大概5k左右的工作(工作内容可能是接线工+调试板子,还不会让你那么快写程序),不要看网络平台上工资高,绝大部分面试就会发现工资虚标或者要求很高。想要月薪过万,要会画板子、熟悉模电、会linux和arm平台和大概两三年项目经验。这每一个都是大坑,对编程和数学要求比较高。如果你是学生的话,趁早在学校把上述内容学了,毕业可以找还可以的工作。我是毕业捡起来的,实在没有精力去补这么多坑,2020年疫情解封去广东找工作,工资稍微高一点的要求就不止单片机了,挣扎半年后还是回了湖北。目前准备脱坑了,单片机这方面以后也只会作为爱好,准备去搞设备维修plc之类的工作,感觉偶尔有体力劳动的工作会让人更精神。
如果我的教程有帮到你的话,看到这里点个赞吧!祝大家前程似锦!
完结
|