草庐IT

STM32标准库编程中USE_STDPERIPH_DRIVER的用法理解

  STM32单片机编程中,我们要在C/C++选项下定义宏USE_STDPERIPH_DRIVER,它的作用是什么呢?  1、USE_STDPERIPH_DRIVER宏的作用  main.c是入口,在main.c中会包含头文件“stm32f10x.h”,在stm32f10x.h文件中,我们会在8296行发现“USE_STDPERIPH_DRIVER”用处的地方:  从这里我可以看出,只有用预编译指令预定义了宏“USE_STDPERIPH_DRIVER”,那么才会包含头文件“stm32f10x_conf.h”,从而被包含进“main.c”文件中。头文件“stm32f10x_conf.h”里面包含

MASM32连接程序时error A2006: undefined symbol : u

为了检测Windows操作系统是32位还是64位的,用MASM32编写了一个调用WindowsAPI函数GetNativeSystemInfo的程序(完整代码附后),GetNativeSystemInfo函数会将指向SYSTEM_INFO结构体的地址存到GetNativeSystemInfo传递的参数中。微软官网中的STEM_INFO定义为:typedefstruct_SYSTEM_INFO{union{DWORDdwOemId;struct{WORDwProcessorArchitecture;WORDwReserved;}DUMMYSTRUCTNAME;}DUMMYUNIONNAME;DW

java - Android Studio 模拟器 - Java 实例不支持 32 位 JVM

我在Macosxmaverick上运行androidstudio。我已经安装了64位JDK。当我运行模拟器时,我收到消息Error:Abnormalbuildprocesstermination:Error:ThisJavainstancedoesnotsupporta32-bitJVM.Pleaseinstallthedesiredversion.在安卓工作室中。java-version返回version"1.7.0_51"Java(TM)SERuntimeEnvironment(build1.7.0_51-b13)JavaHotSpot(TM)64-BitServerVM(buil

普冉PY32系列(十一) 基于PY32F002A的6+1通道遥控小车II - 控制篇

目录普冉PY32系列(一)PY32F0系列32位CortexM0+MCU简介普冉PY32系列(二)UbuntuGCCToolchain和VSCode开发环境普冉PY32系列(三)PY32F002A资源实测-这个型号不简单普冉PY32系列(四)PY32F002A/003/030的时钟设置普冉PY32系列(五)使用JLinkRTT代替串口输出日志普冉PY32系列(六)通过I2C接口驱动PCF8574扩展的1602LCD普冉PY32系列(七)SOP8,SOP10,SOP16封装的PY32F002A/PY32F003管脚复用普冉PY32系列(八)GPIO模拟和硬件SPI方式驱动无线收发芯片XN297L

普冉PY32系列(十二) 基于PY32F002A的6+1通道遥控小车III - 驱动篇

目录普冉PY32系列(一)PY32F0系列32位CortexM0+MCU简介普冉PY32系列(二)UbuntuGCCToolchain和VSCode开发环境普冉PY32系列(三)PY32F002A资源实测-这个型号不简单普冉PY32系列(四)PY32F002A/003/030的时钟设置普冉PY32系列(五)使用JLinkRTT代替串口输出日志普冉PY32系列(六)通过I2C接口驱动PCF8574扩展的1602LCD普冉PY32系列(七)SOP8,SOP10,SOP16封装的PY32F002A/PY32F003管脚复用普冉PY32系列(八)GPIO模拟和硬件SPI方式驱动无线收发芯片XN297L

STM32开发中printf利用重定向方法输出到串口(CubeMX 基于HAL库方法,带实际项目应用技巧 巧用goto语句)

在stdio.h中的printf原本输出到控制台,在单片机应用中一般将其改到串口,并利用串口输出信息来调试程序,非常方便。(本文以USART1为例)此外CubeMX及CubeIDE由于自动生成基础代码,因此每当更改硬件配置的时候,都会被重置生成的基础代码。这里使用goto语句来避免部分修改过的基础代码被替换掉。方法如下:配置CubeMX,选择芯片:选择芯片后勾选右上角蓝色图标:"StartProject"在系统内核中,配置系统时钟。在mode中,选择使用外部晶振。进入ClockConfiguration进行时钟树的配置(根据外接晶振的实际情况配置)进入Connectivity选项卡配置串口,这

STM32-MEMS麦克风采集、高级音频处理和音频输出

 FP-AUD-SMARTMIC1简介        FP-AUD-SMARTMIC1是一个STM32Cube功能包。该软件包实现了一个完整的应用程序,目标是MEMS麦克风阵列的高级处理,包括数字MEMS麦克风采集、波束成形、源定位和回声消除。处理后的音频被发送到USB主机和连接到相关扩展板的扬声器。该功能包基于STM32Cube软件技术,可轻松在不同的STM32微控制器之间进行移植。        此示例实现支持两种系统:STM32NUCLEO-F446RE开发板,配备X-NUCLEO-CA01M1或X-NUCLEO-CA02M2扩展板和STEVAL-MIC001V1、STEVAL-MIC0

一款集成ST-link下载及虚拟串口的STM32F103C8T6最小系统板设计

前言            在以前的STM32单片机应用中,经常使用STM32F103C8T6最小系统板(小蓝板)作为主控。程序下载和串口交互都需要额外器件和接线,程序下载的话要用到ST-link,串口交互用到USB-TTL,常见的样子就下面这样吧。   为了摆脱接线的麻烦和少占用我一个USB口,我决定将它俩集成到主控上。这里采用的方案是ST-linkV2.1,上图所示的是ST-linkV2,它没带串口功能。而V2.1的带有虚拟串口,但是固件大小比V2的大。一、设计3D展示             这里用要2块STM32F103的芯片,顶层的芯片是刷ST-linkV2.1固件作下载加串口功能,

stm32f103rct6引脚功能表格

脚号引脚名称主功能默认复用重定义备注1           VBATVBAT----说明12           PC13-TAMPER-RTCPC13TAMPER-RTC--说明33           PC14-OSC32_INPC14OSC32_IN--说明34           PC15-OSC32_OUTPC15OSC32_OUT--说明35           OSC_INOSC_IN--CAN_RX晶振6           OSC_OUTOSC_OUT--CAN_TX晶振7           NRSTNRST----复位8           PC0PC0ADC123_IN

STM32:时钟树原理概要

在一般情况下只要在CubeIDE中将RCC下的高速时钟源设置成晶振,随后在时钟配置中把HCLK设置到最大频率(比如STM32F103的最高频率是72MHZ),CubeIDE就会帮我们自动调节其它参数到合适的值。这样我们芯片就可以全速运行了。一、时钟信号    芯片大部分都是由庞大的电路组成。这种电路通常是逻辑电路。例如如下电路:        AB线路分别输入0和1后经过与门和异或门,在寄存器存的值便是1。此时AB线路再分别输入1和1,在理想状态下寄存器值就会变成0。但是实际和理想情况不同。        在现实实践中,存在门电路运算延时问题。在AB线路分别输入1和1的时候,由于与门运算电路比