这一节我们以外部中断为例子,讲讲中断的优先级和中断向量表的知识。1)cubemx生成代码首先还是在cubemx中生成代码,选择器件、设置SYS(调试接口)、设置RCC(外部晶振时钟源)。然后设置GPIO引脚,选择PC13作为输出(用于LED指示),如下图选择PA0设置为外部中断输入引脚:然后设置中断使能和优先级,如下图:这里的几处选项解释一下:最上面的Priority group是选择优先级分组,
本文内容大部分源于韦东山老师的课件。供自己学习回顾使用。在RTOS中的中断处理过程大致流程如下: 假设当前执行正在任务task,用户按下按键触发了按键中断,cpu此时跳到硬件跳转的中断向量位置,保存task的运行环境,便于后面恢复;分辨中断并执行相应的中断服务函数(ISR);执行完毕后,恢复原来task的环境,或运行其他优先级更高的任务。在Freertos中,中断服务函数的优先级高于任务,任务只有
FreeRTOS学习笔记-Day1-20200526nFlag = TRUE;先立个Flag,是时候点亮嵌入式实时操作系统这个技能了。座右铭:坚持、认真、沉静、笃行。FreeRTOS优势总结FreeRTOS优势如下:开源免费,商业使用不需要用户公开源码,也不存在任何版权问题;移植简单;当前小型嵌入式操作系统市场使用率较高;嵌入式操作系统概念:嵌入式操作系统就是运行在嵌入式硬件平台上,对整个操作系统
1.FreeRTOS队列      队列是主要的任务间通讯方式。可以在任务与任务间、中断和任务间传送信息。大多数情况下,队列用于具有线程保护的FIFO(先进先出)缓冲区:新数据放在队列的后面。当然,数据也可以放在队列的前面,在下一篇讲队列API函数时,会涉及到数据的存放位置。 图1-1:读写队列      图1-1所示的队列中,
转载 2024-09-11 11:27:33
42阅读
目录1. 队列的理论讲解1.1 常规操作 2. 队列的常规使用3. 队列集1. 队列的理论讲解1.1 常规操作 队列的简化操如入下图所示,从此图可知: 队列可以包含若干个数据:队列中有若干项,这被称为"长度"(length) 每个数据大小固定 创建队列时就要指定长度、数据大小 数据的操作采用先进先出的方法(FIFO,First In First Out):写数据时放到尾部,读数据时从头部
 写在前面姊妹篇  vue.js之过渡效果-css。今天一篇博文阅读量破300,心里还是有点小激动的。没错,我就是这么容易满足(害羞)。这个数据可能连大牛一篇文章阅读量的零头都没有,但这却是我个人的一大步,因为我在帮助别人。当然我没少受到别人文章的帮助。我想,也是大家这种乐于分享的心态让编程在一堆代码后面变得更加有人情味,前端变得更有意思。什么是钩子我当初看到钩子这个东西的时候
rtos, free: Definition and Recommended LinksOur favorite links for this topic area. Enjoy, fellow researchers! Questions, comments, new links? Email eewindow@aol.com!. A real-time operating system (RT
原创 2009-06-23 22:47:00
411阅读
# 实现“FreeRTOS 是微内核吗” ## 引言 在嵌入式开发领域,FreeRTOS 是一款广泛应用的实时操作系统。而对于刚入行的小白来说,了解 FreeRTOS 的内核类型是非常重要的。本文将指导你了解 FreeRTOS 是如何实现微内核架构的。 ## 整体流程 下面是学习 FreeRTOS 是否为微内核的流程,我们将分为以下步骤: 1. 理解微内核架构 2. 研究 FreeRTOS 的
原创 2024-01-09 21:38:15
207阅读
概述FIFO 先进先出一个队列可由多方写入当某个任务读取一个队列时,其可以指定一个阻塞超时时间。在这段时间中,如果队列为空,该任务将保持阻塞态以等待队列数据有效。当写入了数据,该任务将自动由阻塞态转移为就绪态。当等待的时间超过了指定的阻塞时间,任务会自动从阻塞态转移为就绪任务在写队列时也可以指定一个阻塞超时时间,这个时间是指当被写队列已满时,任务进入阻塞态以等待队列空间有效的最长时间当多个任务读取
  由于不同的 Cortex-M 系列,其中断优先级是不一样的,所以事先要搞清楚所用 MCU 的中断优先级有几种。在 CMSIS 库中,头文件中的 __NVIC_PRIO_BITS 为中断优先级的比特位数,也就表示了 MCU 使用的中断的数量。   FreeRTOS 的中断嵌套结构被分为两组,一组为被屏蔽的一组为不屏蔽的。 FreeRTOSConfig.h 中的configMAX_SYSCALL_
1.为什么学习RTOS?         作为基于ARM7、Cortex-M3硬件开发的嵌入式工程师,我一直反对使用RTOS。不仅因为不恰当的使用RTOS会给项目带来额外的稳定性风险,更重要的是我认为绝大多数基于ARM7、Cortex-M3硬件的项目,还没复杂到使用RTOS的地步,使用状态机就足够了。 &nb
文章目录1. 安装STM32CubeMX软件1.1 下载安装1.2 安装要用到的芯片软件包2. 配置FreeRTOS项目2.1 创建工程2.2 配置SYS2.3 配置RCC2.4 配置系统运行时钟2.5 配置UART1串口作为调试代码2.6 配置一个LED引脚的GPIO2.7 使能FreeRTOS组件3. 生成代码4. 测试生成的工程代码 1. 安装STM32CubeMX软件ST公司现在出了一套
Stm32的工程建立1、双击打开MDK。点击project,弹出面板,点击New projet  在弹出的对话框里右键新建一个文件夹(名字可以随便自己取)。建立完后,双击进入,在文件明处输入你建立的工程名字。点击保存后弹出如下界面。在里面选择你所用的stm32的型号(MDK5需要下载驱动包)这里我以stm32f103vet6为例 点击选择完成后,会出现一个空
转载 6月前
13阅读
#define configPRIO_BITS 4 #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 //系统可管理的最高中断优先级 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 #define configKERNE
文章目录1.队列1.1 队列特性1.2 队列创建1.2.1 接口函数1.2.2 内存占用1.2.3 创建过程分析1.3 入队与出队1.3.1 队列项入队1.3.1 队列项出队2.信号量2.1 二值信号量2.2 计数型信号量2.3 互斥信号量3.总结 1.队列  FreeRTOS支持多任务操作,那么任务之间以及任务与中断之间肯定需要通讯与同步,因此,继任务相关内容学习之后,下一个重要的概念就是队列
一直对stm32的硬件iic敬而远之,好像说是有问题的,就一直用的模拟iic实现,今天用sht30试了一下,发现基于cubemx配置iic还挺方便的。现做如下记录首先是硬件平台:stm32f103vet6指南者先总结一下步骤cubemx配置->SHT30_Init(选择模式)->reset->利用Init的返回值判断是否成功->读取->数据拼接涉及到的自己写的函数有
使用 CubeMX 配置 RCC 时钟RCC时钟控制时钟树时钟配置CubeMx 配置系统时钟使用 RCC时钟控制STM32H7 有如下六种时钟可供使用:HSI (High-speed internal oscillator) :HSI 是内部的高速 RC 振荡器,频率 64MHz,可被用于系统时钟。优势是低成本,无需外部时钟,快速启动(仅需几个微秒),缺点是精度差,即使经过校准。HSE (Hig
转载 2024-03-31 22:05:34
218阅读
目的通过HAL库实现STM32F103C8T6两块板之间的IIC主从相互通信,串口打印接收数据。环境搭建/**I2C1 GPIO Configuration PB6 ------> I2C1_SCL PB7 ------> I2C1_SDA 注意通信线记得接上拉电阻4.7k。CubeMx配置配置sys 串行调试 配置外部高速时钟 配置串口,默认值 配置IIC,
一知半解学习环境:     1、CubeMX 4.23.0     2、uVision 5.14.2     3、 MCU 启明 STM32F407 开发板(高配版) V3.1     4、 中景园电子0.96寸OLED 一知半解学习目标:     1、掌握CubeMX下RCC以及S
前期准备项目设计所用微处理器是由st公司生产的Nucleo-stm32l476开发板。cortex-M4内核,板载stlink,支持arduino扩展。 首先打开 意法半导体官网,点击login,没有账号就先注册一个官网账号,在官网下载都需要登录账号。 之后搜索该开发板相关信息 点击相应型号 下载数据摘要,也可以在资源栏目下载相关资料和电路图 文档中说明可以用如下的工具进行开发 下面介绍cubem
转载 2024-09-01 23:41:28
117阅读
  • 1
  • 2
  • 3
  • 4
  • 5