目录前言 基本原理仿真实现代码生成及开发板验证前言之前做了脉振高频注入的仿真到代码生成开发板运行的实验,电机可以通过高频注入计算出角度,但是在初始位置检测的时候,尝试了不少方法但是效果一般,很容易反转,由于时间关系没有花太多时间和精力,最近又尝试了一种方法,效果还是比较明显在这里记录一下,所有算法层的代码都是自动生成的。STM32Simulink自动代码生成电机控制——脉振高频注入_高频注入代码_卡洛斯伊的博客-CSDN博客 基本原理在做高频注入的时候都会发现,注入高频信号进行角度估算后会收敛到某一个角度,如果不加磁极判断的话,收敛的角度可能会差,就会造成反向收敛,也就是电机会反转。所以在启动
1、需要安装串口驱动;如使用CH340串口,则安装CH340驱动2、下载并打开FLYMCU软件3、选择MCU启动模式BOOT0BOOT1说明0XFLASH启动模式10下载启动模式11SRAM启动模BOOT0选择1,BOOT1选择0;MCU为低电平复位,硬件上需要满足MCU复位后自动进入“串口下载”模式。4、stm32单片机的串口下载只能用usart1。5下载成功如下图所示 步骤2可要可不要(需要加密的就要); 下载成功后将BOOT0=0,BOOT1=0;
部分代码来源于网络,侵权删本文使用硬件:STM32F103C8T6最小系统板、IIC协议0.96寸OLED屏幕显示、DS18B20传感器 实现功能:在OLED上显示出DS18B20采集到的温度,精确到小数点后一位。DS18B20.c#include"ds18b20.h"#include"delay.h"voidDS18B20_IO_IN(void){ GPIO_InitTypeDefGPIO_InitStructure; GPIO_InitStructure.GPIO_Pin=DS18B20_PIN; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; G
一、新建工程1、按照新建工程步骤创建工程,新建start、library、user三个文件夹,从固件库添加相应文件2、keilkil小程序用来清理listings和objects文件夹中编译产生的中间文件,以后需要打包工程的话可以先用keilkill先清理,这样文件夹会大大缩小所占内存。 二、操作GPIO口点亮LED灯1)使能RCC开启GPIO时钟在library中可以查看外设函数库,先找到RCC.h文件 拖到最下方,一般最下方都是.h文件的所有库函数声明 实际操作:使能GPIOA口的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
移植u8g2到stmintfputc(intch,FILE*f){ ITM_SendChar(ch); return(ch);}voiddelay_us(uint32_ttime){uint32_ti=8*time;while(i--);}uint8_tSTM32_gpio_and_delay(u8x8_t*u8x8,uint8_tmsg,uint8_targ_int,void*arg_ptr){//printf("%s:msg=%d,arg_int=%d\r\n",__FUNCTION__,msg,arg_int);switch(msg){caseU8X8_MSG_DELAY_100NANO
文章目录STM32-MQTT1.MQTT简介1.1概述1.2基本概念1.2.1MQTTBroker(Server)/Client1.2.2Publish/Subscribe&Topic1.3工作过程1.4版本2.移植STM322.1步骤2.2通信过程2.3简易移植方案2.4Notes3.测试3.1服务器环境搭建3.2客户端-Ubuntu3.3客户端-Windows参考链接STM32-MQTT1.MQTT简介1.1概述消息队列遥测传输(MessageQueuingTelemetryTransport,MQTT)是基于客户端(Client)/服务器(Server)和发布(Pulishi)/订阅(S
拖更了n久的备赛日记终于来啦,最近实现了关于K210图像识别并将所需数据(即目标类别,目标在图像中的加权坐标)其中,加权坐标指K210识别到的目标并框出的框的宽和高与框左上顶点的坐标加权,希望以此来判断目标所处的位置并方便后续进行诸如寻迹,目标跟随等任务。其中涉及包括YOLO网络的训练,上位机K210进行目标检测并利用串口对数据进行发出。下位机STM32则要接收到K210传出的数据,对数据进行解码,存入对应数组便于后续引用,在此次实验中再利用串口二将接收数据传给PC端利用串口助手进行数据显示。 我们一步一步来,从K210的YOLO网络训练开始讲起,K210中常用的YOLO网络训练包括利用
摘 要随着科技的飞速发展,人民的生活质量得到极大改善,同时人们对自身的健康状况更加关注。因此,需要设计了一款基于STM32的智能手环系统,其可显示步数、心率、温度、血氧等数据,使人们更快更好地实时了解健康情况。本次设计的智能健康监测手环主要组成是STM32单片机电路、ADXL345加速度传感器、心率血氧检测电路、OLED液晶显示电路、电源电路、时钟DS1302和DS18B20温度传感器组成。通过ADXL345测量重力加速度,是用来判断人体状态,根据状态的数值变化进行计步功能。通过心率血氧传感器测试,通过手指脉动放大经过比较器处理后发送给单片机进行心率血氧采集。并将步数、心率血氧,温度、时间显示
1.什么是DMA:用较为官方的话说,DMA(DirectMemoryAccess,直接存储器访问)提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于CPU,在这个时间中,CPU对于内存的工作来说就无法使用。我们可以理解为DMA为一个对于CPU进行数据搬用的搬运工,它的意义是代替CPU搬用数据,为CPU减负。为什么我们在程序设计中需要这么做那因为1.数据搬用的工作比较耗时间2.数据搬用对于时效要求高3.我们需要CPU去处理更重要的事。2.搬用什么数据主要是储存器与外设的数据,这里外设指的是SPI,USART,IIC,adc等基于AP
绪论本文主要讲解单片机的时钟系统的相关知识,并进行超频测试,同时介绍如何在STM32F0单片机上进行内外时钟的切换,在不使用外部晶振或者外部晶振不启动时自动切换内部时钟的方法。一、杂谈问题来源于群里的一次问答:诚然,当使用固件库时,把外部晶振摘掉,系统确实会自动切换到内部时钟,但是只会以8M的默认值运行,显然这是十分不可行的,8M的速度直接让我们的STM32病入膏肓,今天的任务就是让STM32失去外挂(晶振)时,依旧可以激情澎湃。时钟详解这里不过多介绍,自己也没有别人介绍的好。此帖旨在解决现实问题。此处插播广告:群友问过这种问题,外部接8M晶振和16M晶振有啥区别?以我微薄的经验来看,这两个在