潍坊哪里做网站好,网站付费推广有哪些,建设网站的公司有哪些知乎,毕业设计网页设计题目前言 uC-OS2 是比较经典的 RTOS#xff0c;如今软件授权已经改为 Apache License Version 2.0#xff0c;意味着可以免费商用了 当前 uC-OS2 的最新版本是#xff1a; V2.93#xff0c;打算研究一下 RTOS 的设计思想#xff0c;所以想在已有的开发板#xff1a;NUCLEO-L…前言 uC-OS2 是比较经典的 RTOS如今软件授权已经改为 Apache License Version 2.0意味着可以免费商用了 当前 uC-OS2 的最新版本是 V2.93打算研究一下 RTOS 的设计思想所以想在已有的开发板NUCLEO-L476RG也就是 STM32L476RG 平台上进行移植、研究
开发环境 win10 64位 Keil uVision5MDK V5.36 uC-OS2 V2.93 开发板NUCLEO-L476RG MCU 为 STM32L476RG STM32CubeMX 6.9.1用于生成 STM32的裸机工程
STM32 裸机工程 首先下载并安装 STM32CubeMX 6.9.1这是个ST 强大的 工程配置生成 IDE可以生成 Keil MDK 或者 IAR 的 STM32工程同时配置好 STM32 HAL库配置好系统时钟、引脚、外设等这样一套下来就有了一个初步的裸机工程。 打开 STM32CubeMX新建 工程选择 board NUCLEO-L476RG双击进行STM32L476 的配置 这里基本上看一下即可烧写引脚、串口引脚、LED 引脚系统时钟配置80MHz Keil MDK5 工程 如果生成的Keil MDK5 工程想再修改配置就双击 工程下的 STM32CubeMX 配置文件 stm32l476_ucosii_led.ioc 即可如重新配置引脚、外设、时钟等 生成的Keil MDK5 工程如下点击编译可以正常编译通过。 可以写一个 LED 闪烁的 简单的裸机程序然后下载到 开发板确认是否可以正常工作 裸机 LED 驱动 默认生成的工程LED 的引脚已经配置了当然可以手动配置 新建 led.c
#include main.hvoid led_grn_ctrl(unsigned int bon)
{if (bon 0x01) /* LEDG ON */{HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);}else{HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);}
}新建 led.h
#ifndef __LED_H__
#define __LED_H__void led_grn_ctrl(unsigned int bon);#endif 把 led.c 与 led.h 加入 Keil MDK5 的工程里面 修改 main.c让 LED 闪烁起来
#include main.h
#include led.hUART_HandleTypeDef huart2;void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART2_UART_Init(void);/*** brief The application entry point.* retval int*/
int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART2_UART_Init();while (1){led_grn_ctrl(1);HAL_Delay(1000);led_grn_ctrl(0);HAL_Delay(1000);}
}添加 led.c 到工程然后配置好 led.h 头文件路径编译下载到开发板发现开发板的 LED 开始闪烁当前是 1秒闪烁一次 下载 uC-OS2 使用 git 克隆 下载地址 https://github.com/weston-embedded/uC-OS2.git git clone https://github.com/weston-embedded/uC-OS2.git 待续
小结 本篇初步搭建 STM32 的裸机工程裸机下 让 LED 闪烁起来 添加基本的 LED 控制驱动 到工程 接下来记录 uC-OS2 在 STM32 上的移植与配置