推荐阅读最新更新时间:2024-03-16 14:29
实战经验 | 如何在用户应用中开启 LoRa CAD
01 LoRa CAD 应用场景举例 在 STM32WL LoRa 某些应用中,尤其是电池供电的设备上,需要按需发送数据,如下发指令,让 STM32WL LoRa 发送数据,或做相应的操作。为了降低功耗,STM32WL不能一直处于接收状态,这样功耗会很高。我们可以开启 LoRa CAD(信道活动检测)功能,STM32WL 通过开启 CAD 功能,检测前导码的前 1/2/4/8/16 个码元,当检测到 LoRa(唤醒)信号后再开启接收,否则系统进入低功耗,这样会极大的降低系统的整体功耗。 02 STM32WL LoRa CAD 原理和驱动 LoRa 信号可以在低于噪声强度的情况下被正确解调。所以,仅
[单片机]
stm32 高级定时器1配置注意
void TIM1_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //①时钟 TIM1 使能 //定时器 TIM1 初始化 TIM_TimeBaseStructure.TIM_Period = arr; //设置自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置时钟频率除数的预分频值
[单片机]
STM32 FSMC 驱动80总线液晶屏的方法的解释
这里先看TFT液晶屏所谓的80时序图: 当我们对比之后发现STM32的FSMC的SRAM时序和80总线很相近,也可以套用: 在这里只要把地址线当成RS就可以相当于80时序了,具体实现方法是这样的: 把A0连接到RS,那么当我对0地址进行读写方式的时候A0将会输出0,这也就相当于命令的读写,当我地1地址进行读写的时候,那就相当于对数据的读写,这样就巧妙的避开了地址的问题,因为液晶是地址数据复用的,我们在代码里也可以看到这个结构体: typedef struct { vu16 LCD_REG; vu16 LCD_RAM; } LCD_TypeDef; //使用NOR/SRAM的 Bank1.sector4,地址位HAD
[单片机]
电动汽车快速充电机监控终端的设计
0 引言 随着国家对新能源技术的大力扶持,电动汽车逐渐成为国家在新能源汽车产业大力发展的对象,而电动汽车充电站、快速充电机是电动汽车大规模化后不可或缺的服务基础设施之一。大量分布于各住宅小区、停车场的电动汽车用非车载智能快速充电机,实现高效、安全、智能化的管理必定成为主流。针对目前快速充电机群实行无人值守的运行情况,这就要求快速充电机须具有较高的可靠性和自动化程度,功能更加完善,可远程维护等功能。 这样,使得分布式、模块化、智能化成为快速充电机的发展方向,而高性能、低成本的充电机监控终端是其中的关键技术。为管理区域多台充电机的资源优化利用与管理的智能化,监控终端与Internet网的交互成为一种必然。 1 监
[单片机]
STM32 定时器输出 PWM
我们通过TIM3 输出PWM 去驱动 SG90电机 配置如下 1.GPIO结构体 2.配置通用定时器结构体 3.配置定时去输出PWM结构体 4.打开时钟 — GPIO时钟,TIM定时器时钟,部分重映射时钟 5.配置PWM比较值 一 我们使用定时器3 通道2 重映射之后为PB5 GPIO_InitTypeDef GPIO_motorstruct; GPIO_motorstruct.GPIO_Mode =GPIO_Mode_AF_PP; GPIO_motorstruct.GPIO_Pin = GPIO_Pin_5; GPIO_motorstruct.GPIO_Speed =GPIO_Speed_50M
[单片机]
STM32 基础系列教程 18 – IWDG
前言 学习stm32 独立看门狗(IWDG)接口使用,学会用STM32内部独立看门狗(IWDG)实现程序异常时自复位功能。 STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完
[单片机]
STM32 内存分配详解
1、KEIL 编译后数据 code RO-data RW-data ZI-data flash 实际存储数据 2、内存段 bss 段、data段、text段、堆(heap)和栈(stack)。 2.1、bss 段 bss 段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域; bss 是英文Block Started by Symbol的简称; bss 段属于静态内存分配。 2.2、data 段 数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域; 数据段属于静态内存分配。 2.3、text 段 代码段(code s
[单片机]
在STM32实现命令行
一、前言 工作中的开发环境都是基于linux命令行交互,作为命令行的重度使用者,玩单片机也要使用命令行工具,百度了一些命令行工具,有几个不错的开源 cmd 交互工具,主要看了 finsh和 nr_micro_shell 两个开源项目。Finsh 功能上限较多,但资源占用比较高,nr 有基本功能,且占用 MCU 资源较少,Github 给出的对比列表如下: Nr 和 Finsh 编译资源对比: 原始工程 添加nr_micro_shell增加量 添加finsh增加量 ROM 63660 +3832 +26908 RAM 4696 +1104 +1304 综合衡量了一下,移植 nr 作为后续项目的一个命令行交互。本篇文章分
[单片机]