STM32F1与STM32CubeIDE快速入门OLEDSSD1306I2C驱动
STM32F1与STM32CubeIDE快速入门-OLED-SSD1306-I2C驱动OLED-SSD1306-I2C驱动OLED显示屏是指有机电激发光二极管(OrganicLight-EmittingDiode,OLED)由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
本次实例将实现对OLED SSD1306基于HAL实现驱动。
关于OLED驱动的描述在前面的文章中做了详细的描述,请参考:
Ardunio开发实例-OLED显示屏
Arduino与Proteus仿真实例-OLED显示屏(SSD1306)I2C驱动仿真
8051单片机Proteus仿真与开发实例-OLED显示屏(SSD1306控制器)I2C驱动
Arduino网络编程实战-OLED显示图片
Arduino网络编程实战-OLED显示中文
Arduino网络编程实战-OLED显示天气信息
1、OLED配置STM32CubeIDE创建工程、系统配置、调试配置,在这里不再做介绍,请参考:
S ...
STM32F1与STM32CubeIDE编程实例CMSISRTOS V2配置基于FreeRTOS
STM32F1与STM32CubeIDE编程实例-CMSIS-RTOS V2配置(基于FreeRTOS)CMSIS-RTOS V2配置(基于FreeRTOS)1、什么是CMSIS-RTOS V2CMSIS-RTOS v2 (CMSIS-RTOS2) 为基于 Arm® Cortex® 处理器的设备提供通用 RTOS 接口。 它为需要 RTOS 功能的软件组件提供标准化 API,从而为用户和软件行业带来巨大的好处:
CMSIS-RTOS2 提供了许多应用程序所需的基本功能。
CMSIS-RTOS2 的统一功能集减少了学习工作并简化了软件组件的共享。
使用 CMSIS-RTOS2 的中间件组件与 RTOS 无关,并且更容易适应。
CMSIS-RTOS2 的标准项目模板可以随免费提供的 CMSIS-RTOS2 实施一起提供。
注意:CMSIS-RTOS API 版本 2 定义了最小功能集。 RTOS 供应商可能会提供具有扩展功能的实现。
CMSIS-RTOS2 管理微控制器系统的资源并实现并发运行的并行线程的概念。
应用程序经常需要多个并发活动。 CMSIS-RTOS2 可以在需要时管 ...
STM32F1与STM32CubeIDE编程实例CMSISRTOS V2线程管理
STM32F1与STM32CubeIDE编程实例-CMSIS-RTOS V2-线程管理文章目录
线程管理
1、CMSIS-RTOS V2中的线程管理概念
1.2、线程管理API
1.3、线程创建
2、STM32CubeIDE中配置线程
3、线程功能代码实现
4、STM32F1与STM32CubeIDE快速入门系列文章
线程管理CMSIS-RTOS v2 (CMSIS-RTOS2) 为基于 Arm® Cortex® 处理器的设备提供通用 RTOS 接口。 它为需要 RTOS 功能的软件组件提供标准化 API,从而为用户和软件行业带来巨大的好处。
本文将详细介绍,在CMSIS-RTOS V2中如何使用线程。
1、CMSIS-RTOS V2中的线程管理概念在CMSIS-RTOS V2中,线程管理功能组允许在系统中定义、创建和控制线程功能(注意:不能从中断服务程序调用线程管理函数)。
在CMSIS-RTOS V2中,对线程的状态定义如下:
RUNNING:当前正在运行的线程处于RUNNING状态。 一次只能有一个线程处于此状态。
READY:准备运行的线程处于 RE ...
STM32F1与STM32CubeIDE编程实例CMSISRTOS v2延时
STM32F1与STM32CubeIDE编程实例-CMSIS-RTOS v2-延时延时CMSIS-RTOS v2 (CMSIS-RTOS2) 为基于 Arm® Cortex® 处理器的设备提供通用 RTOS 接口。 它为需要 RTOS 功能的软件组件提供标准化 API,从而为用户和软件行业带来巨大的好处。
本文将详细介绍,在CMSIS-RTOS V2中如何使用延时。
CMSIS-RTOS V2提供两个延时函数,分别是:
osStatus_t osDelay (uint32_t ticks)
osStatus_t osDelayUntil (uint32_t ticks)
1、osDelay函数函数 osDelay 等待内核节拍中指定的时间段。 对于值 1,系统将等待直到下一个计时器滴答(tick)发生。 实际的时间延迟最多可能比指定的计时器小一个节拍,即在下一个系统节拍发生之前调用 osDelay(1) 立即重新调度线程。
延迟的线程被置于 BLOCKED 状态并立即发生上下文切换。 在给定数量的滴答声过去后,线程会自动回到 READY 状态。 如果线程在 READY 状态下具 ...
STM32F1与STM32CubeIDE编程实例CMSISRTOS V2定时器管理
STM32F1与STM32CubeIDE编程实例-CMSIS-RTOS V2-定时器管理定时器管理CMSIS-RTOS v2 (CMSIS-RTOS2) 为基于 Arm® Cortex® 处理器的设备提供通用 RTOS 接口。 它为需要 RTOS 功能的软件组件提供标准化 API,从而为用户和软件行业带来巨大的好处。
本文将详细介绍,在CMSIS-RTOS V2中如何使用定时器。
1、CMSIS-RTOS V2定时器介绍除了通用延时函数之外,CMSIS-RTOS 还支持虚拟定时器对象。 这些定时器对象可以触发函数(不是线程)的执行。 当定时器到期时,将执行回调函数以运行与定时器相关的代码。 每个定时器都可以配置为一次性或周期性定时器。 周期性定时器重复其操作,直到它被删除或停止。 所有定时器都可以启动、重新启动或停止。
1234注意:1)、RTX 在线程 osRtxTimerThread 中处理定时器。 回调函数在此线程的控制下运行,并且可能使用其他 CMSIS-RTOS API 调用。 osRtxTimerThread 在 Timer Configuration 中配置。2)、定 ...
STM32F1与STM32CubeIDE编程实例CMSISRTOS V2互斥Mutex管理
STM32F1与STM32CubeIDE编程实例-CMSIS-RTOS V2-互斥(Mutex)管理互斥(Mutex)管理CMSIS-RTOS v2 (CMSIS-RTOS2) 为基于 Arm® Cortex® 处理器的设备提供通用 RTOS 接口。 它为需要 RTOS 功能的软件组件提供标准化 API,从而为用户和软件行业带来巨大的好处。
本文将详细介绍,在CMSIS-RTOS V2中如何使用Mutex。
1、Mutex介绍互斥(广泛称为 Mutex)在各种操作系统中用于资源管理。 微控制器设备中的许多资源可以重复使用,但一次只能由一个线程使用(例如通信通道、内存和文件)。 互斥锁用于保护对共享资源的访问。 创建互斥体,然后在线程之间传递(它们可以获取和释放互斥体)。
1.2 CMSIS-RTOS中的Mutex互斥锁是信号量的特殊版本。 与信号量一样,它是令牌的容器。 但是,互斥体不能拥有多个令牌,而是只能携带一个(代表资源)。 因此,互斥令牌是二进制和有界的,即它要么可用,要么被拥有线程阻塞。 互斥锁的优点是它引入了线程所有权。 当一个线程获得一个互斥体并成为其所有者时,从该 ...
STM32F1与STM32CubeIDE编程实例CMSISRTOS V2信号量Semaphore
STM32F1与STM32CubeIDE编程实例-CMSIS-RTOS V2-信号量(Semaphore)信号量(Semaphore)CMSIS-RTOS v2 (CMSIS-RTOS2) 为基于 Arm® Cortex® 处理器的设备提供通用 RTOS 接口。 它为需要 RTOS 功能的软件组件提供标准化 API,从而为用户和软件行业带来巨大的好处。
本文将详细介绍在CMSIS-RTOS V2中如何使用信号量(Semaphore)。
文章目录
信号量(Semaphore)
1、信号量介绍
1.1 CMSIS-RTOS V2中的信号量
1.1.1 计数信号量
1.1.2 生产者/消费者信号量
1.3 CMSIS-RTOS V2中信号量API
2、在STM32CubeIDE中配置信号量
3、信号量功能代码实现
4、STM32F1与STM32CubeIDE快速入门系列文章
1、信号量介绍信号量用于管理和保护对共享资源的访问。 信号量与互斥量非常相似。 Mutex 一次只允许一个线程访问共享资源,而信号量可用于允许固定数量的线程/I ...
STM32F1与STM32CubeIDE编程实例CMSISRTOS V2事件标志Event Flags
STM32F1与STM32CubeIDE编程实例-CMSIS-RTOS V2-事件标志(Event Flags)事件标志(Event Flags)CMSIS-RTOS v2 (CMSIS-RTOS2) 为基于 Arm® Cortex® 处理器的设备提供通用 RTOS 接口。 它为需要 RTOS 功能的软件组件提供标准化 API,从而为用户和软件行业带来巨大的好处。
本文将详细介绍在CMSIS-RTOS V2中如何使用事件标志(Event Flags)。
1、事件标志介绍CMSIS-RTOS 中的事件标志管理功能允许您控制或等待事件标志。 每个信号最多有 31 个事件标志。
线程对事件有如下操作:
可以等待设置事件标志(使用 osEventFlagsWait)。 使用此功能,它进入 BLOCKED 状态。
可以在任何其他给定线程中设置一个或多个标志(使用 osEventFlagsSet)。
可以清除自己的信号或其他线程的信号(使用 osEventFlagsClear)。
当线程唤醒并恢复执行时,其信号标志会自动清除(除非指定了事件标志选项 osFlagsNoClear)。
12注 ...
STM32F1与STM32CubeIDE编程实例CMSISRTOS V2消息队列
STM32F1与STM32CubeIDE编程实例-CMSIS-RTOS V2-消息队列消息队列CMSIS-RTOS v2 (CMSIS-RTOS2) 为基于 Arm® Cortex® 处理器的设备提供通用 RTOS 接口。 它为需要 RTOS 功能的软件组件提供标准化 API,从而为用户和软件行业带来巨大的好处。
本文将详细介绍在CMSIS-RTOS V2中如何使用队列(Message Queue)。
1、消息队列介绍一个队列可以容纳有限数量的固定大小的数据项。 队列可以容纳的最大项目数称为“长度”。 每个数据项的长度和大小都是在创建队列时设置的。
队列通常用作先进先出 (FIFO) 缓冲区,其中数据被写入队列的末端(尾部)并从队列的前端(头部)移除。 下图演示了正在用作 FIFO 的队列中写入和读取的数据。 也可以写入队列的前面,并覆盖已经在队列前面的数据。
队列发送的所有数据必须属于同一类型,在队列创建阶段声明。 它可以是简单的变量或结构。
队列长度在创建阶段声明,定义为将通过队列发送的项目数。
队列内的操作在关键部分执行(通过对 BASEPRI 寄存器进行编程来阻 ...
STM32F1与STM32CubeIDE快速入门SD卡驱动SDIOFatFs
STM32F1与STM32CubeIDE快速入门-SD卡驱动-SDIO+FatFsSD卡驱动-SDIO+FatFs文章目录
SD卡驱动-SDIO+FatFs
1、SDIO与FatFs简单介绍
2、SDIO与FatFs配置
3、SDIO与FatFs功能测试
4、代码解析
5、STM32F1与STM32CubeIDE系列文章
5.1 STM32F1与STM32CubeIDE快速入门
5.2 STM32F1与STM32CubeIDE编程实例
1、SDIO与FatFs简单介绍安全数字输入/输出 (Secure Digital Input/Output,SDIO) 是可互换存储器的标准设备。使用 SDIO 卡,用户可以选择在便携式或非便携式存储器之间交换数据。通常,SDIO 卡就像小型计算机或功能强大的软件应用程序,主要用于智能手机、蓝牙适配器、全球定位系统 (GPS) 接收器、电视调谐器、相机、扫描仪、录音机,甚至指纹读取器。 SDIO是SD卡的高级设备。可以说SDIO是SD卡和I/O输出设备的混合体。
内存可以存储在各种设备上,如便携式 ...
