嵌入式入门-从STM32CudeMX、FreeRtos、Proteu仿真开始
嵌入式入门-从STM32CudeMX、FreeRtos、Proteu仿真开始
嵌入式是什么呢?
嵌入式开发就是指在嵌入式操作系统下进行开发,常用的嵌入式操作系统有FreeRtos,ucos,linux,android等。与单片机开发最大的不同就是裸跑与跑系统的区别。嵌入式系统的物理结构关系是从属的关系,嵌入式系统在控制逻辑关系上却是起主导的关系,嵌入式系统被嵌入安装在目标应用系统内,是控制目标应用系统运行的逻辑处理系统。嵌入式系统尽管可以用不同的方式构建,一旦构建完成之后,嵌入式系统就是一个专用系统。在专用系统中,可编程器件的软件可以在系统构建过程中植入,也可以在器件制造过程中直接生成,以降低制造成本。控制逻辑复杂的单片机会需要操作系统软件支持;控制逻辑简单的嵌入式系统也可以不用操作系统软件支持。嵌入式系统是当前最热门最有发展前途的IT应用之一,应用嵌入式系统的设备通常硬件资源有限、对成本很敏感、对实时响应要求高。
STM32CubeMX是ST意法半导体的一个图形化的工具,也是配置和初始化C代码生成器,也就是自动生成开发初期关于芯片相关的一些初始化代码。它可以减轻开发的时间和费用。STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。这个平台包括 STM32Cube HAL(一个 STM32 的抽象层集成软件,确保STM32 系列最大的移植性)。再加上兼容的一套中间件(RTOS、USB、TCP/IP 和图形),所有内嵌软件组件附带了全套例程,STM32CubeMX的特性有:
1.直观的选择 STM32芯片,选型神器。
2.STM32芯片图形化配置有:自动处理引脚冲突、动态设置确定的时钟树、可以动态确定参数设置的外围和中间件模式和初始化、功耗预测等。
3.C代码工程生成器覆盖了STM32 芯片初始化编译软件,如IAR、KEIL、GCC。
4.可独立使用或作为 Eclipse 插件使用。
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件,它具有EDA工具软件的仿真功能,具有单片机及外围器件的仿真功能,是比较好的仿真单片机及外围器件的工具,早已受到单片机爱好者、单片机教师、单片机开发应用的科技工作者的青睐。Proteus是著名的仿真软件,可以从原理图布的代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,实现真正的从概念到产品的完整设计。Proteus是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10~30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,Proteus8.0以后版本支持STM32芯片仿真,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil等多种编译器。
话不多说开始入门吧!
打开STM32CubeMX选择单片机型号,stm32f103cb。
配置单片机I/O口,PA0,PA1,PA2为推挽输出,PB0,PB1为下拉输入。
配置FreeRtos系统。内核设置、内存管理设置、钩子函数相关定义、运行时和任务统计信息收集、共同程序相关定义、软件计时器定义、中断嵌套行为配置。
添加FreeRtos任务,defaultTask、myTask02、myTask03、优先级配置、堆栈大小配置、入口函数配置、代码生成选项、等任务参数配置。
设置完成就可以生成代码了,设置工具链/IDE–MDK-ARM V5、路径、高级设置选择使用HAL库或是LL库、配置时钟等参数。
打开Keil uVision5–MDK-ARM V5工程,这是一个能用的,完整的工程文件。
工程目录有 ARM-MDK应用程序、用户程序、HAL库驱动、外设驱动、FreeRtos中间文件。
可以看见已经创建好了3个任务,defaultTask、myTask02、myTask03。以及配置好了任务参数。
可以看见已经完成了I/O口的初始化配置。
我们只要在任务中添加任务代码即可!方便至极。
完成之后,就可以编译生成执行文件.hex
打开Proteus仿真软件,选择要用到的器件BUTTON、Resistors、LED-GREENSTM32F103C6,搭建电路。
导入单片机执行文件仿真。
好了,完成了,恭喜你已成功入门了嵌入式开发。
结语:
嵌入式不是纯软件技术,也不是纯硬件技术,是一个特定的硬件环境上开发与构建特定的可编程软件系统的综合技术,是在嵌入式系统的发展中应运而生的,是依附于嵌入式系统,并推动嵌入式系统不断向前发展的核心动力。嵌入式是一种专用的计算机系统,作为装置或设备的一部分,是一个控制程序存储在ROM中的嵌入式处理器控制板,所有带有数字接口的设备都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是单个程序实现整个控制逻辑。
(后续开发如遇到问题欢迎留言讨论哦……………..)
https://m.toutiaocdn.com/i6808115888928064007/?app=news_article×tamp=1591024382&use_new_style=1&req_id=20200601231302010026077204264811D6&group_id=6808115888928064007&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share