简介:本文分两种方法添加DSP库:1.CubeMX直接配置ioc添加;2.KEIL内添加;一、MX直接配置DSP库简述:补齐全部lib库->添加DSP包->使能DSP勾选->添加头文件及魔术棒配置->测试1.补齐lib库。(如果使用直接默认添加的库,是不支持FPU的,所以需要补齐后找到所需的lib文件进行替换,在MX的工程管理栏,选择复制所有库)。此处添加的DSP文件夹位置:Project...\Drivers\CMSIS\DSP生成工程后,带FPU的lib文件位置\Drivers\CMSIS\Lib\ARM,注意所圈文件的位置,后面需手动添加到工程2.添加DSP芯片包。3.使能DSP,生成代
目录一旋钮编码器相关知识二STM32CubeMx配置三程序编写3.1相关函数介绍3.2程序编写四实验结果一旋钮编码器相关知识旋转编码器是一种位置传感器,输出脉冲信号可以用来确定编码器的旋转角度和旋转方向。编码器中有两个开关,当旋钮旋转后,开关会依次导通,开关结构图如下图所示如果我们将旋钮开关的引脚C接GND,引脚A和B通过上拉电阻接高电平,当旋钮旋转后开关会依次导通,A、B口的波形如下图所示。旋钮反转,A相波形会落后于B相所以我们可以开启STM32单片机定时器的输入捕获功能,统计A、B引脚的上升沿和下降沿的个数,可以知道旋钮编码器旋转了多少度;通过判断当A端口为下降沿时,B端口是高电平还是低电
我正在运行一个函数来脉冲播放图标:-(void)pulsePlayIcon{if([selfisPlaying]){return;}[[selfvideoView]playIcon].hidden=NO;[[selfvideoView]playIcon].alpha=1.0;[UIViewanimateWithDuration:[selfplayIconPulseDuration]delay:[selfplayIconPulseTimeInterval]options:(UIViewAnimationOptionRepeat|UIViewAnimationOptionAutorever
我正在运行一个函数来脉冲播放图标:-(void)pulsePlayIcon{if([selfisPlaying]){return;}[[selfvideoView]playIcon].hidden=NO;[[selfvideoView]playIcon].alpha=1.0;[UIViewanimateWithDuration:[selfplayIconPulseDuration]delay:[selfplayIconPulseTimeInterval]options:(UIViewAnimationOptionRepeat|UIViewAnimationOptionAutorever
前言:本文主要内容为将优秀的图形库U8g2移植到STM32单片机上,用于OLED显示精美UI。其实,目前GitHub上有需要优秀的开源GUI库,但是大部分的GUI解决方案并不适合0.96OLED(128x64像素,基于SSD1306)这种资源紧缺型的显示模组使用。所以,在这里给大家介绍和移植一下目前最为主流的0.96寸OLED的GUI图形库——U8g2。(本文为HAL库下的移植,标准库和其区别不大,文末有代码开源) U8g2库开源网址:https://github.com/olikraus/u8g2 实验硬件:STM32F103C8T6;0.96寸OLED(128×
前言:本文主要内容为将优秀的图形库U8g2移植到STM32单片机上,用于OLED显示精美UI。其实,目前GitHub上有需要优秀的开源GUI库,但是大部分的GUI解决方案并不适合0.96OLED(128x64像素,基于SSD1306)这种资源紧缺型的显示模组使用。所以,在这里给大家介绍和移植一下目前最为主流的0.96寸OLED的GUI图形库——U8g2。(本文为HAL库下的移植,标准库和其区别不大,文末有代码开源) U8g2库开源网址:https://github.com/olikraus/u8g2 实验硬件:STM32F103C8T6;0.96寸OLED(128×
一、目标 stm32f103c8t6用串口发送AT指令控制esp8266发送数据到手机APP上,同时手机也可以发送数据到stm32f103c8t6主控,控制LED的亮灭。 将esp8266模块的GND、VCC、TXD、RXD、CH-PD与单片机对应引脚连接,其中TXD与RXD要反接,模块在工作时CH-PD要处于高电平状态。二、串口助手实验过程 步骤:1esp8266配置wifi模式 AT+CWMODE=1 2esp8266重启 AT+RST 3开启手机热点 4esp8266连接手机热点 AT+CWJAP="热
有关于I2C的知识看这篇文章:【记录】嵌入式经典通信I2C理解有关于MPU6050的基础知识和手册去看这篇文章:【记录】MPU6050原理快速入门(附手册)此篇记录代码编写过程:直接看汇总: 代码汇总一、完成CubeMX的配置。首先分析自身需求:MPU6050需要用到I2C或者是模拟I2C,因为stm32自身具备I2C,故选择使用物理I2C。此外,通过串口来将数据传给电脑,实现在电脑上查看吗,因此需要配置串口,并完成串口的重定向。使用的控制板是正点原子的探索者,主控芯片是STM32F407ZGT6。CubeMX的配置请参考其它文章,这里只给出I2C的配置图和最终的引脚配置图。I2C的配置如图:
问题背景: 今天在给stm32f407vgt6点灯时,想实现循环闪烁,于是想从以前的工程中移植一个delay延时函数,移植后编译时发现出现错误:Error:L6218E:UndefinedsymbolDelay(unsigned)(referredfrommain.o).的解决方法解决过程的思考: 在确定了头文件Include路径的包含和.c文件的添加后,想起之前用C++实现STM32F103C8T6串口字符输出看过的一篇文章,文中提到一个工程中含有.cpp文件和.c文件混合实现时,在文件类型是C++的main.cpp下所有用C语言实现的模块,添加.h时要加上ex
STM32使用HAL库,串口收发一段时间后出错问题及解决方法问题1:串口溢出解决方法问题2:串口同时收发,一段时间后串口接收不工作解决办法问题及解决方法当STM32使用HAL库进行开发时,偶尔会遇到串口收发数据量大时,会出现问题。比如同时串口同时收发,一段时间后就只能发送,接收不工作。或是只接收,但数据量大时也不工作。下面对这些问题和其解决办法进行整理。问题1:串口溢出当数据量过大且传输频率快时,串口可能会因为溢出,而不进入串口中断。解决方法使能RXNE中断和ORE中断:if(HAL_UART_Receive_IT(&huart1,(uint8_t*)&aRxBuffer,RXBUFFERSI