STM32
文章平均质量分 56
一把木剑
目前主要学习机器人相关理论,ROS下的机器人仿真及控制,欢迎交流
展开
-
STM32时钟系统
STM32的时钟系统比较复杂,不像51单片机一个系统时钟就可以解决一切。也许你会问,为什么不采用统一的时钟,这样不是更简单吗?这是因为STM32的外设比较多,对不同外设而言,所需要的时钟是不一样的,而且,对同一个电路,时钟越快功耗越大,抗电磁干扰的能力也会减弱,因此现在较为复杂的MCU一般都是采用多时钟的方法来解决这些问题。STM32的时钟树图一般在网上都能找的到,因为占据版面位置较大,这里就原创 2016-12-11 15:00:44 · 596 阅读 · 0 评论 -
error directive #error "Define according the used Cortex core ARM_MATH_CMX
最近在做一个工程的移植,从STM32F4移植到STM32L4上,在移植DSP库时出现了该报错:error directive #error "Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS or ARM_MATH_CM0"查了一些资料给出了解决方案1.添...原创 2018-03-29 11:12:16 · 9252 阅读 · 1 评论 -
error directive: Compiler generates FPU instructions for a device without an FPU
在Option---C++--define中加上__FPU_PRESENT使用M4浮点计算和DSP库完整宏定义如下STM32L471xx,USE_HAL_DRIVER,USE_STDPERIPH_DRIVER,ARM_MATH_CM4,__CC_ARM,__FPU_PRESENT第一个根据所使用的型号进行对应修改。...原创 2018-04-02 21:50:05 · 7891 阅读 · 1 评论 -
STM32 DSP库函数详解
对于每个函数,都存在浮点数和定点数的类型,由于使用方法是一致的,这里我们仅以32为浮点数为例来说明。一.BasicMathFunctions1.绝对值pDst[n] = abs(pSrc[n]), 0 示例float32_t *pSrc;statifloat32_t *pDst;uint32_t blocksize;arm_abs_f32(pSrc,pDst,bloc原创 2017-12-06 21:29:28 · 46185 阅读 · 3 评论 -
STM32:利用VM8978和I2S实现录音的频率分析
所用板子为STM32F407,通过配置VM8978和I2S实现录音功能,并将其保存在SRAM中,利用FFT来进行频率分析。1.VM8978 VM8978是欧胜推出的一款全功能音频处理器,集成了对麦克风的支持以及扬声器功效。VM8978的控制通过I2S(飞利浦标准)接口同MCU进行音频数据传输,通过两线(MODE=0,即 IIC 接口)或三线(MODE=1)接口进行配置 。将V原创 2017-11-23 11:08:21 · 12454 阅读 · 6 评论 -
推挽输出与开漏输出
推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.要实现“线与”需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务。电路工作时,两只对称的功率开关管每次只有一个导通转载 2017-06-28 20:44:11 · 755 阅读 · 0 评论 -
PS2解码通讯
PS2手柄是索尼公司生产的一款游戏机遥控手柄,之后有人破解了它的通讯协议,因此现在可以用来作为遥控器控制机器小车或者机器人。这里我们提供一个基于STM32F4的通讯例程。#ifndef __PSTWO_H#define __PSTWO_H#include "delay.h"#include "sys.h"/*************************************原创 2017-06-07 21:12:42 · 2351 阅读 · 0 评论 -
麦克纳姆轮及其速度分解计算
https://zhuanlan.zhihu.com/p/20282234?utm_source=qq&utm_medium=social什么是麦克纳姆轮在竞赛机器人和特殊工种机器人中,全向移动经常是一个必需的功能。「全向移动」意味着可以在平面内做出任意方向平移同时自转的动作。为了实现全向移动,一般机器人会使用「全向轮」(Omni Wheel)或「麦克纳姆轮」(Mecanum转载 2017-04-05 11:11:49 · 82952 阅读 · 24 评论 -
STM32 利用定时器来计程序运行时间
在单片机的调试过程中,我们经常需要知道某个过程跑一遍的时长,以便更好地对时序进行控制。事实上,利用单片机自带的定时器就能很方便地实现这一功能。void TIM4_Int_Init(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; NVIC_InitTypeDef NVIC_InitStructure;原创 2017-04-05 10:21:05 · 8349 阅读 · 5 评论 -
看懂RS232,RS485,TTL
在接触硬件的时候,经常要碰到这几个名词,RS232,RS485,TTL电平,那么这几个究竟是如何区分的呢?RS232和RS485其实是一个系列的,都是美国电子工业协会直制定的一种串行接口标准,RS就是英文“推荐标准”的缩写。最初的标准规定的是一个25脚的连接器,但目前常见的RS232接口一般是经过IBM简化的,称为D8-9连接器,其中最经常使用的只有三个引脚,RXD(2),TXD(3),原创 2017-03-16 16:21:36 · 1498 阅读 · 0 评论 -
ESP8266 WIFI 模块使用说明
ESP8266是ai-thinker公司推出的一款无线WIFI模块,可以通过配置,和单片机上的串口进行通信,利用WIFI传输数据。1.AT指令简介同许多通信模块一样,我们需要对WIFI模块利用AT指令对系统参数进行配置。指令格式如下:AT+<COMMAND>=<VALUE>\r\n根据不同指令,模块将返回不同的值。其中\r\n是回车换行符,用16进制表示,就...原创 2017-02-15 11:12:31 · 21015 阅读 · 0 评论 -
STM32 同一变量在不同执行文件中的同步
在C中,经常用到全局变量的概念,可以方便地对在不同函数中需要重复调用的变量进行赋值操作。而在单片机的应用中,经常会有若干个对应的执行文件,如何使一个变量在这些文件中都能进行对应的赋值操作呢?我们需要先创建一个头文件,比如取名为include.h#ifndef __INCLUDE_H#define __INCLUDE_H extern int m1,m2,m3;#end原创 2017-02-14 09:58:08 · 2602 阅读 · 0 评论 -
STM32 PWM简介及呼吸灯实验
1.PWM简介脉冲宽度调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单来说,就是对脉冲宽度的控制,原理图如下:当CNT这里我们使用STM32F4的TIM14的CH1产生一路PWM输出。值得一提的是控制PWM的三个寄存器:捕获/比较模式寄存器(TIMx_CCMR1/2),捕获/比较使能寄存器(TIMx_CCER),捕获/比较寄存器(TIMx原创 2017-01-07 16:21:27 · 16737 阅读 · 0 评论 -
STM32独立看门狗
独立看门狗有几个重要的寄存器。首先是关键字寄存器IWDG_KR,在关键字寄存器IWDG_KR中写入0xcccc,表示开始启用独立看门狗,此时计数器开始从 复位值0xfff递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。如果向IWDG_KR中写入0xaaaa,无论处于什么计数状态,IWDG_RLR中的值就会被重新加载,从而避免看门狗复位。IWDG_P原创 2017-01-07 09:52:29 · 526 阅读 · 0 评论 -
STM32串口通信
串口作为MCU最重要的外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻。在这里我们主要从库函数的角度来讲述如何设置串口,来达到最基本的通信功能。串口的设置一般可以归结为以下几个步骤:1)串口时钟使能,GPIO时钟使能。2)设置引脚复用器映射,调用GPIO_PinAFConfig函数。3)GPIO初始化设置:设置为复用模式。4)串口参数初始化,包括波特率,字长,奇偶原创 2017-01-05 21:21:31 · 652 阅读 · 0 评论 -
STM32 NVIC 中断优先级管理
这里以STM32F4系列为例。先简单介绍下STM32F4的中断分组,STM32F4将中断分为5个组,组0-4.该分组的设置是有SCB->AIRCR寄存器的bit 10~8来定义的。具体分配关系如下表假设说组设置为2,那么此时每个中断的中断优先寄存器的高四位中的最高两位是抢占优先级,低两位是响应优先级。在每个中断中,你可以设置抢占优先级为0-4,响应优先级为0-4。需要注意的是,抢占原创 2016-12-21 15:04:01 · 1372 阅读 · 0 评论 -
CMT2119/2119A 示例代码及说明
CMT2119A是一款常用的全频段单发无线发射芯片,我们使用外部MCU来控制CMT2119A。1.配置连接图我们利用MCU的IO来分别控制CMT2119A的DATA和CLK管脚。2.2线接口(TWI) 2线接口(Two-Write Interface)包括时间接口CLK和双向数据接口DATA。一个完整的W/R过程有16个时钟周期。前8个周期,DATA是输入口;后8个周期,如果是写过程。DAT...原创 2018-04-26 10:44:09 · 7511 阅读 · 0 评论