摘要:
#FreeRTOS_01 | 系统移植 本篇文章主要介绍如何移植FreeRTOS到STM32单片机上,并创建任务实现LED闪烁(标准库)。 为什么嵌入式需要跑操作系统? 1.实时性强,程序中如果发生了延迟,能挂起当前任务执行其他任务,而不是整个程序在等待。 2.操作系统隔离了各个功能程序让它们的耦合 阅读全文
摘要:
本篇文章主要介绍如何使用定时器产生PWM并驱动舵机。 #1.开发环境 软件环境 使用MDK5.25版本,芯片包为STM32F4系列。 硬件环境 开发板:STM32F407VGT6开发板,是一款大容量芯片,最高能跑168MHz。 烧录器:STlink或者Jlink。 舵机:MG90S舵机 红色线为VC 阅读全文
摘要:
本篇文章主要介绍环形缓冲区的使用,为什么使用环形缓冲区呢? 主要是用于解决设备接收数据的速度与设备处理数据的速度发生不匹配的情况,简单来说就是把数据先存到环形缓冲区里面,等CPU空闲的时候一次性处理,来防止接收丢包。 此次使用的环形缓冲区是一个开源库,作者MaJerle。 #1.开发环境 软件环境 阅读全文
摘要:
本篇文章主要介绍STM32的多串口Printf打印,因为在实际项目中可能会遇到,几个串口需要打印不同类型的数据(如字符串%s,浮点型 %f等),或者是用到了AT指令的模组,因此Printf打印就十分的方便,所以今天讲一讲如何实现多串口Printf打印。还有就是在项目中因为布线问题,我们收到的原理图往 阅读全文
摘要:
本篇文章主要介绍STM32串口高波特率下接收不定长数据,因为在实际项目中会遇到串口溢出中断的产生,导致数据接收不正确,提升串口接收中断优先级当时也无法解决,所以采用DMA+空闲中断的方法,希望能给人以收获。 1.开发环境 软件环境 使用MDK5.25版本,芯片包为STM32F4系列。 硬件环境 开发 阅读全文
摘要:
本篇文章主要介绍STM32串口接收不定长数据,采用比较通用的超时分包的方法,不依赖于空闲中断(因为有些单片机是没有空闲中断的),而是使用定时器判断超时,希望能给人以收获。 1.开发环境 软件环境 使用MDK5.25版本,芯片包为STM32F4系列。 硬件环境 开发板:STM32F407VGT6开发板 阅读全文
摘要:
本篇文章主要介绍STM32串口接收不定长数据,采用超时分包的方法,希望能给人以收获。 1.开发环境 软件环境 使用MDK5.25版本,芯片包为STM32F4系列。 硬件环境 开发板:STM32F407VGT6开发板,是一款大容量芯片,最高能跑168MHz。 烧录器:STlink或者Jlink。 2. 阅读全文
摘要:
本篇文章主要介绍STM32的调试利器,串口printf打印输出,希望能给人以收获。 1.开发环境 软件环境 使用MDK5.25版本,芯片包为STM32F4系列。 硬件环境 开发板:STM32F407VGT6开发板,是一款大容量芯片,最高能跑168MHz。 烧录器:STlink或者Jlink。 2.工 阅读全文
摘要:
本篇文章主要介绍如何利用状态机来编写按键检测实验,希望能给人以收获。 1.开发环境 软件环境 使用MDK5.25版本,芯片包为STM32F4系列。 硬件环境 开发板:一块多按键的开发板,本实验采用有三个按键的stm32F407VGT6开发板,是一款大容量芯片,最高能跑168MHz,比F103的72M 阅读全文
摘要:
本篇文章主要介绍本人早期的基于STM32标准库的程序框架,希望能给人以收获。 1.开发环境 软件环境 使用MDK5.25版本,芯片包为STM32F1系列。 硬件环境 开发板:一块STM32F103C8T6开发板(FLASH:64kBytes,RAM:20kBytes),是一款中等容量的芯片。 烧录器 阅读全文