stm32cubemx

STM32CubeMX创建F429HAL库工程并移植TencentOS tiny

不羁岁月 提交于 2020-01-21 03:17:56
一、使用STM32CubeMX生成工程 1. 打开软件 2. 基于芯片创建工程 3. 选择对应芯片 此处我是采用的stm32f429igt6 4. 设置GPIO 5. 设置串口 6. 设置时钟为180MHz 此处选用内部时钟,如需外部时钟请自定义配置 7. 工程设置 8. 生成工程,编译运行,验证 二、TencentOS tiny文件移植 1. 获取源码 官方开源地址: https://github.com/Tencent/TencentOS-tiny 2. 下载到本地,解压如图所示 3. 复制源码文件到mdk工程目录 打开STM32CubeMX生成的工程目录,添加 TencentOS tiny 文件夹,将步骤二的三个文件夹复制到此文件夹 4.新增配置目录及文件 其中,头文件内容如下,注意修改引入的头文件名称: # ifndef _TOS_CONFIG_H_ # define _TOS_CONFIG_H_ # include "stm32f4xx_hal.h" // 目标芯片头文件,用户需要根据情况更改 # define TOS_CFG_TASK_PRIO_MAX 10u // 配置TencentOS tiny默认支持的最大优先级数量 # define TOS_CFG_ROUND_ROBIN_EN 0u // 配置TencentOS tiny的内核是否开启时间片轮转 #

STM32 HAL UART 框架初体验

风格不统一 提交于 2020-01-11 18:32:09
文章目录 背景 开发步骤 配置环境 开始配置 HAL 背景 STM32开发平台,时至今日发展的已经相当成熟了,尤其对于外围硬件接口的抽象封装库,即HAL。好多基于STM32开发的工程师,习惯于直接操作外围接口相关的寄存器来完成所谓的驱动开发,其实,ST公司早就为大家准备好了对于这些外围接口的驱动框架,我们只需要直接拿来就可以使用。 可是以前,基于STM32平台开发时,存在一个问题就是,变换MCU型号时,需要在新老MCU之间移植驱动程序,移植过程中可能出现很多莫名其妙的问题,导致浪费了很多宝贵的开发时间,如何避免这种问题呢?其实,ST早就为大家考虑到了这一点,其开发了STM32CubeMX工具,基于该工具,我们可以轻松的完成各种外围接口的配置工作,而且最为神奇的就是,配置完成之后,该工具会自动生成工程代码,我们基于此,就可以直接进行开发了,免去了很多不必要的硬件寄存器配置工作。当然,对于特殊需求,我们还是需要去手动配置一些硬件寄存器,但是,这项工作大部分时间是不需要的。 既然,ST公司为我们提供了这么好用的工具,我们为什么不用起来呢?下面就基于UART的配置过程,来逐步的讲解一下,如何基于STM32CubeMX、Kiel和STM32 HAL来配置生成一个可用的开发环境。 开发步骤 配置环境 工欲善其事,必先利其器。首先第一步就是安装STM32CubeMX环境

stm32CubeMx lwip + freeRTOS

可紊 提交于 2020-01-08 06:43:21
MCU: STM32F429IGT6 工具:STM32CubeMx 版本号 5.0.0    Keil uVersion5 目的:使用LWIP 实现简单的网络连通 一 简介    LWIP(Light Weight Internet Protoco1)是瑞士计算机科学院(Swedish Institute of Computer Science)AdamDunkels等人开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LWIP的含义是Light Weight(轻型)IP协议。LWIP可以移植到操作系统上,也可以在无操作系统的情况下独立运行。LWIP TCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用。一般它只需要几十KB的RAM和40 KB左右的ROM就可以运行,这使LWIP协议栈适合在小型嵌入式系统中使用。 二 创建工程 本项目 使用 STM32F429IGT6 芯片, PHY 使用的LAN8720A 新建工程,选择芯片 因为项目中使用freeRTOS, timebase 重新选择一个定时器,不使用SysTick 配置RCC ,我的电路使用的是25MHz无源晶振,这里选择高速外部时钟 HSE 接下来配置时钟,由于我的电路中使用的是25MHz晶振,HCLK 配180MHz,按Enter键,软件自动配好倍频,分频系数 配置 ETH, 我的PHY 芯片

STM32CubeMX学习笔记01:FreeRTOS+LWIP+DP83848

情到浓时终转凉″ 提交于 2020-01-04 11:42:26
目录 一 环境部署: 二 学习目标: 三 过程描述: 一 环境部署: 1、STM32CubeMX 5.4.0 2、Keil uVision 5.29.0.0 3、硬件 启明STM32F407开发板(高配版) 4、普通网线 1m 二 学习目标: 掌握STM32Cube工具关于ETH和LWIP部分的配置方法。 三 过程描述: 1、打开CubeMX,点击 INSTALL按钮,选中STM32F4,下载1.24.2版本(如果下载太慢,也可官网下载相同文件,再手动导入,此过程略过); 2、创建工程,芯片选择开发板的板载芯片STM32F407ZGTx。首先配置RCC。 3、配置SYS。 4、配置ETH。记得修改ETH_TX_EN/ETH_TXD0/ETH_TXD1三个引脚的端口映射。 5、配置FREERTOS。此处直接默认即可。 6、配置LWIP。选择固定IP地址。 7、时钟配置。因为开发板DP83848采用的是自带外部时钟,所以不需要配置MCO1。先修改外部时钟为8M,再修改HCLK为168M,按照系统提示自动配置完成。 8、配置Project Manager 9、点击生成代码。直接打开生成的Keil工程。本次使用的是CMSIS-DAP仿真器,若使用其它仿真器的,请按照要求自行配置。 10、检查刚才修改的三个端口,确认无误后,直接编译。 11、开发板上电并连接电脑,注意提前修改好电脑以太网配置

Import C Library in Atollic TrueStudio, STM32CubeMX

雨燕双飞 提交于 2019-12-13 00:14:32
问题 I am currently working on a STM32F767ZI-Nucleo board and a little security chip (microchip atecc508a), that is connected via i2c connection. For this chip is a library available CryptoAuthLib, that I want to use in my project. I'm also using STM32CubeMX to generate my C-Files and Atollic TrueStudio to write my implementations. C programming language is relatively new to me, so I have no idea how to include my library folder to my project (either in cubemx or in trustudio?) to get it work. I

STM32CubeMX+串口通信控制led

拜拜、爱过 提交于 2019-12-06 06:59:19
基础配置见 : https://www.cnblogs.com/jsit-dj-it/p/11967153.html 一、配置USART外设的工作参数 二、生成代码 在main.c编写业务逻辑代码 /* USER CODE BEGIN 4 */ void USER_UART_IRQHandler(UART_HandleTypeDef *huart) { /*__HAL_UART_GET_FLAG 获取 SR 寄存器标志位状态 UART_FLAG_RXNE 接受数据寄存器非空标志位 UART_FLAG_RXNE (0x1UL << USART_SR_RXNE_Pos) /*!< 0x00000020 */ UART_RX_STATE_READY=0x00自定义 */ //接收数据 if ((__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE) != RESET)) { //接收到一帧中的第一个字节 if (uart1RxState == UART_RX_STATE_READY) { uart1RxState = UART_RX_STATE_START; __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); uart1RxCounter = 0; uart1RxBuf[uart1RxCounter] =

STM32CubeMX FreeRTOS定时器的使用

与世无争的帅哥 提交于 2019-11-30 12:16:04
配置STM32CubeMX如下 生成的Keil代码的创建启动定时器如下 /* Create the timer(s) */ /* definition and creation of myTimer01 */ osTimerDef(myTimer01, Callback01); myTimer01Handle = osTimerCreate(osTimer(myTimer01), osTimerPeriodic, NULL); /* USER CODE BEGIN RTOS_TIMERS */ /* start timers, add new ones, ... */ osTimerStart(myTimer01Handle,1000);//1秒钟启动一次定时 /* USER CODE END RTOS_TIMERS */ 定时器的回调函数如下 /* Callback01 function */ void Callback01(void const * argument) { /* USER CODE BEGIN Callback01 */ static int32_t count = 0; printf( "定时器计数:%d.\r\n",count++); /* USER CODE END Callback01 */ } 运行结果如下,每隔一秒打印一次 来源: https:/

【STM32】STM32CubeMX教程二--基本使用(新建工程点亮LED灯)

ぃ、小莉子 提交于 2019-11-26 17:31:45
前言 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯 面向初学者 如果您想着快速实现工程的创建,可以直接跳过功能介绍,观看工程创建一栏 安装STM32CubeMx请参看 《STM32 CubeMx使用教程一--安装教程》 前期准备: 1、STM32硬件(我的是STM32F407ZE和STM32F103ZE) 2、STM32CubeMx软件、 IDE Keil(MDK-ARM)软件 2、STM32F4xxHAL库 功能介绍: 我们首先看下CubeMx的主界面,模块分类大体是这样,我们接下来一一讲解。 已存在工程 Open Existing Projects: 打开项目工程 新建工程 ·Start My project from MCU: 从MCU开始我的项目 ·Start My project from STBoard: 从ST开发板开始我的项目 ·Start My project from Cross Selector: 从交叉选择器启动我的项目 软件包管理 ·CHECK FOR UPDATE: 检查更新 ·INSTALL/REMOVE: 安装/移除软件包 菜单栏: File New Project: 新建工程(Ctrl + N) Load Project: