- 博客(18)
- 资源 (4)
- 收藏
- 关注
原创 嵌入式代码编译过程概述
代码变成嵌入式芯片运行的机器码主要经历四个过程:1. 预处理 2. 编译阶段 3. 汇编阶段 4. 链接阶段,四个过程由编译器(gcc/g++等)实现,为方便编译过程,编译器的调用由构建工具(make)实现。
2024-07-24 23:08:25 1385
原创 嵌入式软件算法之粒子群寻优
嵌入式软件开发过程中或多或少都会遇到一些最优值寻找的过程,比如控制过程中寻找最小电流、电压、温度以及某些最优系数等。解决寻找最优值的过程就寻优算法,传统寻优算法依靠线性单调手段轮训查找,对多极值处理不佳,难以从多极值中找到最值,陷入局部最优。智能的寻优算法大多具备仿生原理实现迭代进化,计算量较大,普通单片机算力有限对于一些计算量大的通用算法实现起来较为费时费力,粒子群实现起来较为简单,计算量小于其它优化算法,同时有具备一定的智能算法的优势,因此本文挑选了粒子群算法来实现通用的单片机智能寻优算法。
2023-05-03 22:41:07 1396 4
原创 嵌入式软件算法之卡尔曼滤波基本原理浅析
卡尔曼滤波是一种实时性高,滤波效果好并且计算量小的一种滤波算法,因内存占用不大的适合嵌入式使用而广受欢迎。相较于常见的经典滤波方式卡尔曼滤波使用上简单方便,但涉及到概率分布模型以及迭代存在一定的入门门槛。 本文从卡尔曼滤波基本原理入手,通过讲解卡尔曼基本迭代过程及一阶多阶例程来实现对卡尔曼基本原理的剖析。
2022-10-25 01:53:20 3364 3
原创 嵌入式软件算法之PID闭环控制原理
在机器人、工业控制等领域经常遇到需要目标控制的问题,如加热至目标温度、控制气压达到目标值或者是机器人关节转角位置/速度控制等。这时候就要加入传感器引入反馈量进行正负反馈调节,从而提高与控制目标的逼近程度。实现此类自动控制就要添加对反馈量的引入处理,嵌入式自动控制领域中最常用最容易实现的便是PID反馈控制,常见的平衡车、无人机、空调、热水器等均基于PID控制来实现。闭环控制是相对于开环控制而言的,开环控制仅有单输入单输出,无反馈信号,常用于控制精度不高的场合。...
2022-08-25 23:33:07 3935
原创 STM32F4单片机bootloader及在线升级IAP基本原理
在线升级是产品开发维护的必要功能之一,对产品的迭代优化、需求定制、稳定性提升以及人力节约上提供了很大帮助。就像我们的手机更新系统一样不断地升级不断地有新的体验。此部分内容从基于STM32F407进行BootLoader、内存分布、IAP升级原理、升级模式等方面进行介绍,其它类型的单片机可进行参考设置。先梳理一下STM32启动过程以及变量、代码在内存中分布过程。了解STM32的启动过程可以从启动文件以及上电执行了一些流程开始。......
2022-07-05 00:14:25 4579 2
原创 自动获取本地连接及网络地址修改
bat文件处理实例自动获取本地连接及网络地址修改对公司局域网或者固定网络地址的产品开发经常遇到修改地址的问题,每次使用均通过手动方式非常麻烦,并且还得记住固定的IPv4地址。对开发人员还好修改是常有的事,但一旦产品量产交于其它部门进行使用测试便会出现网络地址不对应的问题,往往其它部门反馈的问题却总是上位机或者下位机有问题,让人头秃。本文可实现在windows下的bat文件对I本地网络P地址进行保存至当前bat文件中以及设置I本地网络P地址 自动获取I本地网络P地址等功能。对于所有的CMD命令均可以同时使
2022-06-19 10:48:32 491
原创 基于STM32F4实现串口1+DMA中断+环形队列的数据收发处理
基于STM32F4实现串口1+DMA中断+环形队列的数据收发处理用法简介总体方案环形队列的实现串口配置串口接收DMA配置串口发送DMA配置注意事项总结功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入用法简介串口加环形队列基本满足
2022-03-27 21:20:25 12559 7
原创 STM32F407与以太网芯片83848交互使用未插网线导致初始化失败再也连接不上问题
项目场景:在调试项目时发现STM32F407驱动83848芯片时以太网初始化失败问题。问题描述:具体表现为:板子上电不插网线,等程序跑起来后再插入网线怎么也连接不上。上电前插入网线使用正常。原因分析:查了一些网上说明都是指向了此处初始化失败。static void ETH_MACDMA_Config(void) { /* Enable ETHERNET clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_ETH_MAC | RCC
2021-12-12 23:08:13 5267 2
原创 STM32F407配置PLLI2SCLK实现特定50MHz时钟驱动83848
STM32F407配置PLLI2SCLK实现特定50MHz时钟驱动83848MCO2时钟输出时钟树介绍PLLI2S配置函数MCO2输出设置在使用83848以太网芯片时需要输出一路50MHz的时钟同时供给STM32以太网外设EHERNET和83848,但是一般STM32F407配置的系统主频是168MHz,无论怎么分频或者使用高级定时器仍旧无法准确输出50MHz的时钟,本文就是使用STM32F407的另外一路专用PLL实现特定时钟分频输出。MCO2时钟输出时钟树介绍STM32F407可实现MCO1和M
2021-12-12 22:24:40 1907
原创 STM32F407基础总结系列(一)
STM32F407基础总结系列(一)一、前言二、STM32F407部分基础小知识(待整理)1 外设设置相关1.1 GPIO使用1.2 定时器PWM波1.3 外部晶振参数修改2 语言及使用环境相关2.1 C/C++2.2 F407的启动文件3 测试验证相关三、小结尾四、参考文献一、前言突然间想记录一下这些简单实用的东西,因为我发现曾经拥有的、奇妙的抑或是一些引以为豪、熟练的不能再熟练的东西终将会变成脑海中一种自我良好的感觉,当要提取出来用到的时候才发现你依旧是那个小白白,依旧要重新来过。技术时代,时间宝贵
2021-08-07 22:46:42 10655
原创 STM32F407定时器TIM3的时钟频率设置说明
STM32F407定时器TIM3的时钟频率设置说明时钟树设置相关时钟树先是外部时钟,然后/M后变为1MHz,xN后变为366MHz,/P后变为168MHz,此时为SYSCLK时钟频率,经过/1后变为AHB的时钟频率HCLK=SYSCLK,/4后变为APB1时钟频率42MHz,/2后变为APB2时钟频率84MHz,TIM3挂载在APB1上,但因为进行了/4分频所以依照时钟树所述if(APB1 presc=1){x1}else{x2},TIM3时钟要进行X2的一个倍频变为42x2=84MHz.设置相关
2020-10-30 00:00:13 9657 1
原创 基于QEMU文件系统实现文本文件读写
基于QEMU文件系统实现文本文件读写虚拟SD卡创建与挂载文件创建示例程序编写ENV配置测试虚拟SD卡创建与挂载在ENV安装目录下env/tools/fatdisk/中创建sd文件夹修改fatdisk.xml中的参数,如下图所示。在此目录下使用ENV工具,输入fatdisk生成sd.bin文件复制上图中的sd.bin至rt-thread源码相关目录中,替换对应的sd.bin文件,如下图所示。挂载文件系统的源代码位于qemu-vexpress-a9\applications\mnt.c 中。
2020-05-24 21:42:43 890
原创 基于STM32F407VET6与RT-Thread系统实现ds18b20数据上传onenet云端
基于STM32F407VET6与RT-Thread系统实现ds18b20数据上传onenet云端硬件清单前期工作温度传感器测试示例onenet注册与设备创建ENV软件包下载与配置软件包程序调用与测试硬件清单主要硬件为<STM32F407VET6开发板>、<ESP8266WIFI模块>、<DS18B20温度计传感器模块>。硬件连接:开发板通过串口1与电脑连接、ESP8266WIFI通过串口3与开发板连接、DS18B20通过引脚PE7与开发板连接。前期工作温度传感
2020-05-13 14:16:13 1119
原创 STM32F407VET6使用RT-Thread在线添加DS18B20温度传感器软件包
STM32F407VET6使用RT-Thread在线添加DS18B20温度传感器软件包在线添加软件包手动添加软件包的步骤在线添加软件包在相关目录下使用env工具开启sensor框架找到对应的软件包,开启打开keil工程,会发现有相应的软件包及sensor框架修改引脚,参照示例即可使用。这里需要注意一下,如果你使用的是以下这种不带外部电阻的DS18B20模块,应对引脚修改为上拉输入模式,否则出现无法发现设备的请况Can’t find device:temp_ds18b20。修改如
2020-05-10 23:41:59 1136
原创 基于STM32F407VET6修改RT-Thread的命令操作串口及PWM设备使用步骤
基于STM32F407VET6修改RT-Thread的命令操作串口及PWM设备使用步骤修改RT-Thread的命令操作串口CUBEMX打开需要的串口ENV打开串口编译测试PWM设备使用步骤CUBEMX打开tim3的PWM设备修改Kconfig配置代码ENV打开设备使用修改RT-Thread的命令操作串口修改的前提是已经有一份已经移植好的工程模板可以,使用RT-ThreadStudio软件直接生成或按照官方文档移植。CUBEMX打开需要的串口打开cubemx打开并修改需要的串口修改后生成EN
2020-05-08 23:30:25 1243
原创 使用STM32F407VET6移植RT-Thread GitHub源码(基于RTT官方keil移植教程)
使用STM32F407VET6移植RT-Thread GitHub源码(基于RTT官方keil移植教程)例程实现1.下载RT-Thread 源码2.复制通用模板3.CubeMX配置4.文件修改5.keil模板文件修改6.env工具生成mdk5工程简单测试相当于官方教程的简单翻新,凑活看吧例程实现复制通用模板使用 CubeMX 工具配置工程修改 BSP 中的 Kconfig 文件修改构...
2020-04-28 11:03:53 2660 3
stm32f4双区升级实例工程
2022-07-05
基于stm32f407的串口环形队列及DMA收发中断数据处理
2022-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人