草庐IT

STM32WBA

全部标签

STM32—ADC和DMA的应用之电流检测(第一部分:ADC和DMA的配置)

文章目录@[TOC](文章目录)前言一、ADC基本介绍1、ADC是什么2、ADC的供电和基准电压3、ADC通道二、DMA的基本介绍三、ADC和DMA的配置1、配置GPIO端口2、配置DMA_InitTypeDef结构体3、voidDMA_DeInit(DMA_Channel_TypDef*DMAy_Channelx)4、voidDMA_Init(DMA_Channel_TypeDef*DMAy_Channelx,DMA_InitTypeDef*DMA_InitStruct)5、voidDMA_Cmd(DMA_Channel_TypeDef*DMAy_Channelx,FunctionalSta

【STM32的空闲中断(Idle Interrupt)】

一、空闲中断基本框架STM32的空闲中断(IdleInterrupt)通常用于在CPU空闲时执行任务,例如在低功耗模式下减少功耗等。当CPU完成当前任务后,会进入空闲状态,此时会触发空闲中断。在空闲中断中,可以执行一些需要在CPU空闲时执行的任务,例如读取传感器数据、更新LCD显示等。要使用STM32的空闲中断,需要进行以下步骤:1.配置NVIC优先级:将空闲中断的优先级设置为较低的值。2.启用空闲中断:在代码中启用空闲中断,并设置空闲中断的处理函数。以下是使用STM32HAL库实现空闲中断的简单示例代码:voidHAL_UART_RxCpltCallback(UART_HandleTypeD

c++ - 无法从 uint32_t* 转换为 LPDWORD

我正在尝试调用WindowsAPI函数GetExitCodeProcess,它以LPDWORD作为第二个参数。根据MSDN,LPDWORD是指向无符号32位值的指针。所以我尝试传递uint32_t*,但编译器(MSVC11.0)对此不满意:errorC2664:'GetExitCodeProcess':cannotconvertparameter2from'uint32_t*'to'LPDWORD'static_cast也无济于事。这是为什么?在这种情况下使用reinterpret_cast是否安全? 最佳答案 来自document

Arduino、STM32、树莓派的对比

编程语言:Arduino使用C/C++,STM32最常使用C语言,树莓派支持多种编程语言,但最常使用python。开发难度:Arduino开发难度和学习难度较低,开发者只需要通过简单学习,了解各个引脚和函数的作用,便可利用它开发出各种出色的项目。STM32需要更深入的理解和掌握,通常需要具备一定的编程和电子知识。而树莓派,因为它有操作系统,所以必须得了解os和linux的基本原理和操作系统基础知识。型号:arduino和STM32有很多的型号,因此,无论做的项目是大是小,都可以很容易地找到合适的arduino开发板。。而树莓派型号较少,也只有三种尺寸。因此,如果项目尺寸比较小,就不适合用树莓派

STM32入门——三种编写跑马灯程序的方法

前言本文分别通过库函数、寄存器以及位操作完成跑马灯实验,使用的开发板是正点原子的min核心板。一、库函数1.1 硬件连接图1 LED与STM32连接原理图 通过min板的原理图可以看出两个LED灯分别接到PD2和PA8引脚,并且LED灯是共阳极,当IO口输出高电平,LED灭;输出低电平,LED亮。在实际的程序编程中我们需要用到GPIO文件也就是stm32f10x_gpio.h和stm32f10x_gpio.c,来操作对应IO口。同时我们需要设置时钟就要用到stm32f10x_rcc.c与其头文件进行时钟使能。1.2GPIO库函数介绍重要函数1个初始化函数:voidGPIO_Init(GPIO_

基于STM32的智能循迹避障小车实验(小车运动部分)

写在前面这个实验是关于智能小车的实验,现在的想法就是先做出一个循迹和避障功能,后续可能会再添加一些其他的模块。我在做这个实验之前基本了解了F1系列开发板的大部分模块,如果没有学习之前的模块,建议先学习下开发板的基本模块。实验所需的硬件本来是想在网上直接买成套的,但是碍于手头实在紧张,所以分开买的配件。所有配件均从淘宝购入,适合动手能力强的人。1STM32F103C8T6最小系统板2智能小车底板3L298N电机驱动模块4舵机SG90云台和超声波模块HC-SR0454节5号电池6TCRT5000循迹模块2个7面包板和杜邦线若干8下载器95v转3.3vDC-DC模块附上它们的图片     主芯片我当

STM32 | STM32CubeMX基础之TIM

一、定时器分类定时器主要分为三类定时器:基本定时器(TIM6,TIM7),通用定时器(TIM2~TIM5),高级定时器(TIM1,TIM8)。基本定时器(TIM6,TIM7)可以看到,基本定时器只能起到定时的作用,并不能像另两种定时器一样产生PWM等,计数器模式也只有“向上”一种。通用定时器(TIM2~TIM5)位于低速的APB1总线上。16位向上、向下、中心对齐计数模式,自动装载计数器(TIMx_CNT)。16位可编程预分频器(TIMx_PSC),计数器时钟频率的分频系数为1~65535之间的任意数值。4个独立通道(TIMx_CH1~4),这些通道可以用来作为:输入捕获、输出比较、PWM、单

c++ - 使用 Visual Studio 将 HTML 浏览器嵌入到 native C++/Win32 项目中

我在MSVisualStudio2008IDE中有一个C++项目(注意,没有MFC,没有.NET,只有nativeWin32API!)我想知道是否可以向它添加一个子窗口,它可以解析和呈现HTML/CSS/JavaScript,就像浏览器一样。如果该窗口没有浏览器控件/按钮/边框,那就太好了——如果它只是呈现HTML。这样的要求是不是太过分了? 最佳答案 您可以在大量使用COM的窗口中嵌入HTLM浏览器(InternetExplorer)。我曾经这样做过,并且同样需要避免使用MFC、.NET等。此控件非常可配置,您可以删除和/或覆盖几

【STM32&RT-Thread零基础入门】 7. 线程创建应用(多线程运行机制)

硬件:STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线文章目录前言一、RT-Thread相关接口函数1.获取当前运行的线程2.设置调度器钩子函数二、程序设计1.头文件包含及宏定义2.线程入口函数定义3.main函数设计三、程序测试总结前言本章进一步研究多线程的运行机制。要求实现功能如下:创建2个线程,线程名称分别为LED和BEEP。两个线程的任务是连续5次打印本线程的名字后退出线程(注意:线程不执行控制LED和蜂鸣器动作)。设计本任务的目的是观察LED和BEEP线程在操作系统中是如何同时运行的。一、RT-Thread

STM32 使用HAL库,HAL_Delay()会卡死, 程序一直卡在 HAL_GetTick( ) 函数中(已解决)

今天遇到个很奇怪的问题,不知道为什么,单片机运行一会之后,系统就没反应了,经过调试发现,系统卡在HAL_Delay()中了.之前也遇到过这个问题后来把HAL_Delay去掉了.然后发现不行,还是得有它.不然发串口数据发的太快会乱掉.得慢点发.然后调试到HAL_Delay()方法的内部发现HAL_GetTick()函数一直返回__weakvoidHAL_Delay(uint32_tDelay){uint32_ttickstart=HAL_GetTick();uint32_twait=Delay;/*Addafreqtoguaranteeminimumwait*/if(waitHAL_MAX_DE