推荐阅读最新更新时间:2024-03-16 15:15
STM32单片机-标准库编译成lib库
-------------------------------------------------------------------------------------------------------------------------------- 以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程。 这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间。每次建立工程都这么编译,是一个相当浪费时间和香烟的过程。 于是,我有了将库编译成lib文件的想法。本博文就是我将STM32F4的标准库编译成lib文件并在工程中使用的过程。 适用对象: 1、熟悉库,不
[单片机]
STM32——PWM基本知识及配置过程
将通用定时器分为四个部分: 1,选择时钟 2,时基电路 3,输入捕获 4,输出比较 本节定时器PWM输出主要涉及到定时器框图右下方部分,即输出比较部分 和上一讲相同,时基时钟来源于内部默认时钟 对此有疑问请参考 : 定时器中断实验 中 定时器时钟选择部分 和 定时器时钟来源部分 什么是PWM 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 PWM工作过程 每个定时器有四个通道,每一个通道都有一个捕获比较寄存器, 将寄存器
[单片机]
STM32片内RTC亚秒特性的应用示例(上)
绝大多数STM32系列里的RTC都具有亚秒【或称子秒】计数单元。为了了解亚秒特性及功能,不妨先看RTC的功能框图。本文中的有关截图若无特别说明均来自STM32L4系列参考手册。 RTC的时钟源【RTCCLK】可以是LSE、LSI或者HSE/32,由RTCCLK最终变成日历的秒脉冲驱动信号经过了2次分频。先经过上图中A处的异步分频单元,默认分频系数是128,形成ck_apre时钟,默认情况下该时钟频率为256Hz;然后该时钟脉冲来到图中B处的同步分频单元,默认分频系数为256,最终形成1Hz的秒脉冲【ck_spre】到日历单元。关于两分频单元分频系数的配置,通过对RTC_PRER寄存器的相关位编程实现。 其中异步分频系数配
[单片机]
STM32串口第一个字节丢失问题的分析过程
STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收到0x0ff,0x06丢失。错误依旧。 故障排除过程: 1、刚开始怀疑是接收端的错误,我是使用电脑串口,运行串口辅助调试工具接收,换成其他软件后,发现故障依旧,而且电脑软件一直是开启状态,不像和电脑软件有关。 2、使用单步调试,单步运行各个发送指令,都正常。能收到0x01
[单片机]
【STM32电机方波】记录3——TIM1时基初始化配置
定时器分类 : STM32F1x 系列中,除了互联型的产品,共有 8 个定时器,分为基本定时器,通用定时器和高级定时器。 基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO。 通用定时器 TIM2/3/4/5 是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部 IO。 高级定时器 TIM1/8是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,还可以有三相电机互补输出信号,每个定时器有 8 个外部 IO。 高级定时器TIM1的库函数: 定时器TIM1时基结构体缺省值: { TI
[单片机]
STM32学习---位带操作总结
*简介:*在计算机中所有的数据都是以二进制的形式储存的。位运算其实就是直接对在内存中的二进制数进行操作,因此处理数据的速度非常快。 在实际编程中,如果能巧妙运用位操作,完全可以达到四两拨千金的效果,正是因为这些优点,所以位操作的应用非常广泛,同时掌握位带操作对于我们理解STM32的原理非常有用。 ** *过渡:***为了方便大家理解,有必要补充一些基础知识。 1.计算中的符号位: 计算机的符号位就是在处理二进制数据时,专门规定有一位,是用来确定数据的正负,符号位是1表示负数,是0表示正数。当然这里说的是有符号数,这个符号位通常是数据的最高位,如8位数据,左边第一位是符号位,后面7位用来表示数据大小。 2.补码: 注意,此处
[单片机]
C语言在STM32中的内存分配
01前言 不说废话,先上示例代码 uint8_t num_byte ; uint32_t num_word; const uint32_t num_word_const = 0x1234; uint32_t *point_heap; int main(void) { uint8_t num_byte_stack; static uint8_t num_byte_static; point_heap = (uint32_t *)malloc(4); *point_heap = 0x3421; free(point_heap); num_byte_stack = 0x11; #pragma secti
[单片机]
按键开关机电路图 按键开关机电路设计方案
最近做个基于STM32脑波检测的项目,甲方爸爸要求使用按键进行开关机。在网上查了一些资料,找到了很多案例分享,在此进行总结。 主要分为以下两部分: 单片机控制按键开关机电路 独立按键开关机电路 1、单片机控制按键开关机电路 1.1、简约版 图中Ctr和Key接单片机管脚,作用如下: Ctr作为开关控制用 Key作为按键检测用 操作流程: 开机:按下按键,Q1导通,单片机上电,控制Ctr为低电平,保持Q1导通。 关机:再按下按键,单片机控制Ctr为高电平,此时松开按键Q1截至,单片机停电。 如图: 简约版 优缺点分析: 优点:电路简单,元器件比较少。 缺点:在停机状态下单片机的IO口依旧带电,正常使用没问
[单片机]