STM32
登录
直播中
niu!kf
13年用户
601经验值
私信
关注
[问答]
cubeMX生成的FreeRTOS代码框架该如何去实现呢
开启该帖子的消息推送
FreeRTOS
代码
快捷键
cubeMX生成的FreeRTOS代码框架该如何去实现呢?
基于CubeMX+FreeRTOS框架所建立的用户文件如何去实现呢?
回帖
(1)
张永强
2021-12-17 10:05:30
常用指令
缩进2字符:
  
常用字体颜色大小类型设置例程
整段字体设置
中间段字体设置
中间写你的文字
图片大小设置
在图片的最后面的)前面加上 空格=??x
问号是写图片的大小,一般300到500即可
搜狗输入法快捷键自定义输出需求内容
快捷键zs
首选:普通注释
// 其次1:函数的介绍
// 函 数:
// 参 数:
// 返回值:
// 备 注:
//-----------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------
其次2:用于宏定义或者分功能模块这些
//
//-----------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------
快捷键bk
用于CSDN写博客的文本格式设置
首选1
其次2
其次3
cubeMX生成的FreeRTOS代码框架
模板配置步骤
①打开cubeMX选择芯片
②选择晶振(打开了外部的低速和高速晶振)
③配置调试接口和HAL库定时器(systick定时器给FreeRTOS用了,所以HAL库用TIM1)
④打开串口(不是必要的,主要是为了能串口输出打印数据)
⑤配置FreeRTOS(V1和V2区别在哪儿我也不知道,我一般用V2)
⑥配置系统时钟,输入后按Enter确定
⑦配置工程路径及生成哪种编译器支持的工程(路径不能为中文,否则可能生成失败)
⑧生成独立的.c和.h文件
这里可选择是HAL库生成代码还是LL库生成
⑨点击生成代码
生成的文件夹一览(1、2、3、4是自己新建的文件夹,其他的是系统生成的)
文件夹1:存放外设硬件驱动及功能实现
文件夹2:存放公共文件
文件夹3:存放测试例程代码
文件夹4:主要用于记录工程的更新记录
在MDK中药包含这几个文件的头文件路径
基于CubeMX+FreeRTOS框架所建立的用户文件
include.h文件
#ifndef _INCLUDE_H
#define _INCLUDE_H
// 头文件定义区域
//-----------------------------------------------------------------------------------------------------------------
// 这部分用来识别不同的芯片所包含的hal库顶层头文件的
#ifdef STM32F103xE
#include "stm32f1xx_hal.h"
#endif
#ifdef STM32F407xx
#include "stm32f4xx_hal.h"
#endif
// 这是类型重定义的头文件
#include "stdint.h"
// 这是hal库生成后自带的头文件
#include "main.h"
#include "FreeRTOS.h"
#include "cmsis_os.h"
// 这下面则是用户自己定义的头文件
//#include "public.h"
//#include "test.h"
//#include "adc1.h"
//#include "key.h"
//#include "lcd.h"
//#include "led.h"
//#include "nrf24l01.h"
//#include "pwm.h"
//#include "spi1.h"
//#include "spi3.h"
//#include "sys.h"
//#include "usart1.h"
//#include "w25qxx.h"
//-----------------------------------------------------------------------------------------------------------------
// 这里是各种STM32外设用到的外设句柄的外部声明
//-----------------------------------------------------------------------------------------------------------------
//extern TIM_HandleTypeDef htim2; // PWM波
//extern TIM_HandleTypeDef htim3; // 计时器
//extern UART_HandleTypeDef huart1; // 串口
//extern SPI_HandleTypeDef hspi1; // Flash通信
//extern SPI_HandleTypeDef hspi3; // NRF通信
//-----------------------------------------------------------------------------------------------------------------
//定义一些常用的数据类型短关键字(必须要包含stdint.h头文件)
//-----------------------------------------------------------------------------------------------------------------
typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;
typedef const int32_t sc32;
typedef const int16_t sc16;
typedef const int8_t sc8;
typedef __IO int32_t vs32;
typedef __IO int16_t vs16;
typedef __IO int8_t vs8;
typedef __I int32_t vsc32;
typedef __I int16_t vsc16;
typedef __I int8_t vsc8;
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
typedef const uint32_t uc32;
typedef const uint16_t uc16;
typedef const uint8_t uc8;
typedef __IO uint32_t vu32;
typedef __IO uint16_t vu16;
typedef __IO uint8_t vu8;
typedef __I uint32_t vuc32;
typedef __I uint16_t vuc16;
typedef __I uint8_t vuc8;
//-----------------------------------------------------------------------------------------------------------------
#endif
sys.h文件
#ifndef _SYS_H
#define _SYS_H
//定义结构体类型
typedef struct
{
void (*pfunSysInit)(void);
} sysInit_t;
// 声明区域
//-----------------------------------------------------------------------------------------------------------------
// 结构体变量声明
extern sysInit_t sysInit;
// 函数声明
static void Sys_Init(void);
//-----------------------------------------------------------------------------------------------------------------
#endif
sys.c文件
#include "sys.h"
// 定义结构体并赋值
//-----------------------------------------------------------------------------------------------------------------
sysInit_t sysInit =
{
Sys_Init
};
//-----------------------------------------------------------------------------------------------------------------
// 硬件初始化函数
static void Sys_Init(void)
{
}
常用指令
缩进2字符:
  
常用字体颜色大小类型设置例程
整段字体设置
中间段字体设置
中间写你的文字
图片大小设置
在图片的最后面的)前面加上 空格=??x
问号是写图片的大小,一般300到500即可
搜狗输入法快捷键自定义输出需求内容
快捷键zs
首选:普通注释
// 其次1:函数的介绍
// 函 数:
// 参 数:
// 返回值:
// 备 注:
//-----------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------
其次2:用于宏定义或者分功能模块这些
//
//-----------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------
快捷键bk
用于CSDN写博客的文本格式设置
首选1
其次2
其次3
cubeMX生成的FreeRTOS代码框架
模板配置步骤
①打开cubeMX选择芯片
②选择晶振(打开了外部的低速和高速晶振)
③配置调试接口和HAL库定时器(systick定时器给FreeRTOS用了,所以HAL库用TIM1)
④打开串口(不是必要的,主要是为了能串口输出打印数据)
⑤配置FreeRTOS(V1和V2区别在哪儿我也不知道,我一般用V2)
⑥配置系统时钟,输入后按Enter确定
⑦配置工程路径及生成哪种编译器支持的工程(路径不能为中文,否则可能生成失败)
⑧生成独立的.c和.h文件
这里可选择是HAL库生成代码还是LL库生成
⑨点击生成代码
生成的文件夹一览(1、2、3、4是自己新建的文件夹,其他的是系统生成的)
文件夹1:存放外设硬件驱动及功能实现
文件夹2:存放公共文件
文件夹3:存放测试例程代码
文件夹4:主要用于记录工程的更新记录
在MDK中药包含这几个文件的头文件路径
基于CubeMX+FreeRTOS框架所建立的用户文件
include.h文件
#ifndef _INCLUDE_H
#define _INCLUDE_H
// 头文件定义区域
//-----------------------------------------------------------------------------------------------------------------
// 这部分用来识别不同的芯片所包含的hal库顶层头文件的
#ifdef STM32F103xE
#include "stm32f1xx_hal.h"
#endif
#ifdef STM32F407xx
#include "stm32f4xx_hal.h"
#endif
// 这是类型重定义的头文件
#include "stdint.h"
// 这是hal库生成后自带的头文件
#include "main.h"
#include "FreeRTOS.h"
#include "cmsis_os.h"
// 这下面则是用户自己定义的头文件
//#include "public.h"
//#include "test.h"
//#include "adc1.h"
//#include "key.h"
//#include "lcd.h"
//#include "led.h"
//#include "nrf24l01.h"
//#include "pwm.h"
//#include "spi1.h"
//#include "spi3.h"
//#include "sys.h"
//#include "usart1.h"
//#include "w25qxx.h"
//-----------------------------------------------------------------------------------------------------------------
// 这里是各种STM32外设用到的外设句柄的外部声明
//-----------------------------------------------------------------------------------------------------------------
//extern TIM_HandleTypeDef htim2; // PWM波
//extern TIM_HandleTypeDef htim3; // 计时器
//extern UART_HandleTypeDef huart1; // 串口
//extern SPI_HandleTypeDef hspi1; // Flash通信
//extern SPI_HandleTypeDef hspi3; // NRF通信
//-----------------------------------------------------------------------------------------------------------------
//定义一些常用的数据类型短关键字(必须要包含stdint.h头文件)
//-----------------------------------------------------------------------------------------------------------------
typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;
typedef const int32_t sc32;
typedef const int16_t sc16;
typedef const int8_t sc8;
typedef __IO int32_t vs32;
typedef __IO int16_t vs16;
typedef __IO int8_t vs8;
typedef __I int32_t vsc32;
typedef __I int16_t vsc16;
typedef __I int8_t vsc8;
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
typedef const uint32_t uc32;
typedef const uint16_t uc16;
typedef const uint8_t uc8;
typedef __IO uint32_t vu32;
typedef __IO uint16_t vu16;
typedef __IO uint8_t vu8;
typedef __I uint32_t vuc32;
typedef __I uint16_t vuc16;
typedef __I uint8_t vuc8;
//-----------------------------------------------------------------------------------------------------------------
#endif
sys.h文件
#ifndef _SYS_H
#define _SYS_H
//定义结构体类型
typedef struct
{
void (*pfunSysInit)(void);
} sysInit_t;
// 声明区域
//-----------------------------------------------------------------------------------------------------------------
// 结构体变量声明
extern sysInit_t sysInit;
// 函数声明
static void Sys_Init(void);
//-----------------------------------------------------------------------------------------------------------------
#endif
sys.c文件
#include "sys.h"
// 定义结构体并赋值
//-----------------------------------------------------------------------------------------------------------------
sysInit_t sysInit =
{
Sys_Init
};
//-----------------------------------------------------------------------------------------------------------------
// 硬件初始化函数
static void Sys_Init(void)
{
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
FreeRTOS
代码
快捷键
基于STM32
cubeMX
生成
工程添加C++
代码
该
如何
去
实现
呢
2021-12-17
2871
如何
去
编写STM32
CubeMX
生成
的Keil工程
代码
呢
2021-12-02
1579
为什么STM32
CubeMX
带
FreeRTOS
生成
Keil工程的程序无法下载运行
呢
2021-11-26
2069
使用
CubeMX
6为
freeRTOS
生成
代码
的问题如何解决?
2023-01-31
415
STM32
cubemx
的库和KEIL的库有什么不同?
2024-04-11
685
如何使用
CubeMX
快速
生成
FreeRTOS
系统并
实现
多任务处理?
2021-12-20
1655
如何
去
实现
USB模拟串口收发的功能
呢
2021-12-06
2441
请问怎样在STM32
CUBEMX
生成
的串口通讯
代码
里
去
实现
printf输出
呢
2021-12-01
730
怎样使用
CubeMX
去
生成
PlatformIO可用
代码
呢
2022-02-17
1819
STM32
CubeMX
如何自动
生成
FreeRTOS
+LWIP
2020-05-21
2921
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分