![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
文章平均质量分 58
MinJohnson
Improve!
展开
-
STM32F4+CubeMX+Hal库下使能FPU
首先在STM32CubeMX生成工程后,在Keil中打开工程,首先确认配置界面Target选项卡中的Floating Point Hardware为Single Precision(即单精度硬件浮点单元)打开system_stm42f4xx.c可以看到在第168行明确写着FPU单元的开启条件及相关的寄存器操作。所以,只需要定义“__FPU_PRESENT = 1” 且 “__FPU_USED = 1”即可开启FPU单元我们打开stm32f4xx.h中对应芯片型号的头文件,我这里用的是F407,所以转载 2021-10-31 23:36:35 · 2016 阅读 · 2 评论 -
STM32 FFT 汇编定点FFT库(64,256,1024点)
x[n]是采样信号n得满足4^n(n =1,2, 3……),也就是以4为基数。采样信号必须是32位数据,高16位存实部,低16位存虚部(这个是针对大端模式),小端模式是高位存虚部,低位存虚部。一般常用的是小端模式。cr4_fft_64_stm32 :实现64点FFT。cr4_fft_256_stm32 :实现256点FFT。cr4_fft_1024_stm32 : 实现1024点FFT。移植添加这几个文件到自己的工程在stm32_dsp.h文件中添加f4的头文件其他几个点类似,原创 2021-10-28 11:36:08 · 3032 阅读 · 1 评论 -
全国大学生电子设计竞赛2017年E题 自适应滤波器
本题拟采用实时采样的方式来进行自适应滤波。学过数字信号处理都知道,频率分辨率是采样率除以采样点数,而这道题提高部分要求10Hz的分辨率,经过前期的分析,我们采用采样率为4MHz,那么就是说我们需要采样到至少400k个点才能进行一次自适应,而采样这么多点需要的时间是1/10 = 0.1s,所以每进行一次自适应就需要花费0.1s的时间。而提高部分又要求要在1s内完成,所以我们大概可以进行7到8次的滤波。经过matlab仿真不断移相噪声相减得到的相减波形能量如下结果噪声是正弦波时,移相的能量变化图噪原创 2021-09-30 10:13:45 · 3715 阅读 · 1 评论 -
STM32 FreeRTOS系列教程(五)FreeRTOS队列
队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定阻塞的任务时间xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞状态以等待队列数据有效。当队列中有新消息时,被阻塞的任务会被唤醒并处理新消息;当等待的时间超过了指定的阻塞时间,即使队列中尚无有效数据,任务也会自动从阻塞态转为就绪态。消息队列是原创 2021-09-16 11:50:18 · 1820 阅读 · 0 评论 -
STM32 FreeRTOS系列教程(四)任务相关API函数
上面的表格都是FreeRTOS内提供的源码,而在CubeMX生成的工程中我们只需要配置下面的东西就可以完成配置任务的目的。Task Name 任务的名字Priority是这个任务的优先级(CMSIS-V1版本支持7个优先级,而CMSIS-V2版本支持56个优先级,在此处我选择V2版本,因为V1版本不支持事件组的CubeMX配置,V2才支持)Stack Size这里分配128words 也就是128x32 bits也就是512B(其实空闲任务可以分配更少的RAM空间,但是由于)Entry Func.原创 2021-09-16 11:36:13 · 363 阅读 · 0 评论 -
STM32 FreeRTOS系列教程(三)FreeRTOS多任务系统
参考资料:《正点原子STM32F4 FreeRTOS开发手册_V1.1》《野火FreeRTOS 内核实现与应用开发实战—基于STM32》裸机系统(前后台系统)轮询操作:写一个大的while,然后各种各样的任务都放在里面,来了中断就处理中断,处理完所有任务重新开始新的while优点:逻辑写起来简单,且代码量小缺点:实时性较差,比如我执行上图中的任务4突然要执行任务3,如果是裸机系统需要等待一个轮回才行多任务系统正常情况下是有多个任务存在的,然后每个任务都有一个优先级,先是任务列表中最高优先级的任原创 2021-09-04 21:32:13 · 421 阅读 · 0 评论 -
STM32 FreeRTOS系列教程(二)FreeRTOS中断配置和临界段
介绍FreeRTOS中断以及其与Cortex-M中断的区别,以及临界段的设置原创 2021-09-04 20:48:44 · 696 阅读 · 0 评论 -
STM32 FreeRTOS系列教程(一)FreeRTOS简介
参考资料:《正点原子STM32F4 FreeRTOS开发手册_V1.1》《野火FreeRTOS 内核实现与应用开发实战—基于STM32》学习RTOS的意义当我们进入嵌入式这个领域的时候,往往首先接触的都是单片机编程,单片机编程又首选51 单片机来入门。这里面说的单片机编程通常都是指裸机编程,即不加入任何RTOS(Real Time Operating System 实时操作系统)的程序。常用的RTOS 有国外的FreeRTOS、μC/OS、RTX和国内的FreeRTOS、Huawei LiteOS原创 2021-08-30 22:16:16 · 1415 阅读 · 0 评论 -
SPI代码详解FPGA-verilog部分(FPGA+STM32)(三)
声明:本篇文章面向在已对SPI的四种时序有所了解的人我们采用SPI3模式以及将FPGA作从机,STM32作主机的方式讲解,在STM32控制部分采用的是半双工模式,但其实半双工与全双工区别不大,稍加修改即可本文是FPGA通过SPI接收的数据做出应答的模块,比如改变ADC采样率,将ADC采集的数据放在RAM中和从RAM中取出再发送给单片机module samplingCtrl ( input clk, input rstn, input [31:0]原创 2021-08-28 15:10:52 · 1202 阅读 · 1 评论 -
SPI代码详解FPGA-verilog部分(FPGA+STM32)(二)
声明:本篇文章面向在已对SPI的四种时序有所了解的人我们采用SPI3模式以及将FPGA作从机,STM32作主机的方式讲解,在STM32控制部分采用的是半双工模式,但其实半双工与全双工区别不大,稍加修改即可本片文章是接续上篇文章的,如果未浏览上一篇文章的,可以在此跳转SPI代码详解FPGA-verilog部分(FPGA+STM32)(一)本部分代码相当于对SPI模块的一个驱动,从SPI模块中进出的数据都要经过spi_mp 这个模块这一层壳模块工作流程:单片机先拉低cs_cmd,发送的命令dcmd原创 2021-08-28 11:24:23 · 1153 阅读 · 0 评论 -
SPI代码详解FPGA-verilog部分(FPGA+STM32)(一)
声明:本篇文章面向在已对SPI的四种时序有所了解的人我们采用SPI3模式以及将FPGA作从机,STM32作主机的方式讲解,在STM32控制部分采用的是半双工模式,但其实半双工与全双工区别不大,稍加修改即可本文章属于SPI的升级版,将原本的片选线CS_N再多加一根,变成spi_cs_cmd和spi_cs_data,当spi_cs_cmd拉低的时候表示传送的是命令(命令只由单片机发送),当cs_data拉低的时候表示传送的是数据(数据可以是FPGA传给单片机的,也可以是单片机传给FPGA的)mo原创 2021-08-28 11:02:34 · 1341 阅读 · 0 评论 -
STM32-GPIO详解
STM32-GPIO配置介绍typedef struct { uint32_t GPIO_Pin; GPIOMode_TypeDef GPIO_Mode; GPIOSpeed_TypeDef GPIO_Speed; GPIOOType_TypeDef GPIO_OType; GPIOPuPd_TypeDef GPIO_PuPd; }GPIO_InitTypeDef;结构体成员解释GPIO_Pin :直观点说就是针对每个IO口的,对这个成员的配置相当于一原创 2021-03-19 20:02:50 · 4090 阅读 · 6 评论 -
2003年电设国赛D题 简单逻辑分析仪(未完待续)
基于MCU(STM32F407ZGT6)+FPGA (cyclone 10LP)的简单逻辑分析仪有关ADC的一些概念LSB:least significant bit (最低有效位)APB2 84MHzADC 要求36M以内该款STM32芯片内置ADC为主次逼近型(12bit):分为16个外部通道,2个内部源,一个Vbat关于ADC单次、连续、扫描的问题解释比如说ADC1有通道CH0、CH1、CH2、CH3。不开启扫描(scan)模式单次转换 1、开启ADC1。 2、对CH0中原创 2020-08-20 16:41:15 · 367 阅读 · 0 评论 -
STM32F407 SPI配置(普中开发板)
声明:文章部分图片引自网络,如若侵权立即删帖致歉SPI简单介绍SPI全称是“Serial Peripheral Interface”,意为串行外围接口。主要应用在E²PROM、FLASH、实时时钟、AD转换器,数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,在芯片管脚上只占四根线。通常, SPI 通过 4 个引脚与外部器件连接:● MISO:主输入/从输出数据。此引脚可用于在从模式下发送数据和在主模式下接收数据。● MOSI:主输出/从输入数据。此引脚可用于在主模原创 2020-08-20 16:07:31 · 2781 阅读 · 0 评论 -
STM32F407 USART串口通信介绍(普中开发板)
USART与UARTUSART全称为同步异步收发器,而UART仅仅为异步收发器全双工,半双工,单工全双工:就像我们现在用的手机电话,我既能听到你的声音,还能在听到声音的时候说话半双工:对讲机,你说话我只能听,我说话你只能听单工:我能说话你不能说话,你只能听,设定好了永远就只能听,不可能说话(这里面的说话与否对应着数据传输)RS232串口通信有很多接口标准RS-232C有DB25和DB9这两种,分别对应25针和9针,目前使用最多的是9针,连接器的每个插针排列方式都有明确的定义,公头和母头的定义原创 2020-08-19 18:21:49 · 2723 阅读 · 0 评论