- 博客(53)
- 资源 (1)
- 收藏
- 关注
转载 CMake学习汇总
cmake初识(一)cmake多目录构建(二)cmake构建静态或动态库(三)cmake引用静态或动态库(四)cmake自动添加宏定义(五)cmake进阶内建变量及指令(六)cmake函数、宏和模块(七)cmake编译iOS/android/mac的opencv库(八)
2024-02-18 16:57:33 82
原创 Linux学习之悟空派上实现OLED的无线网IP及CPU温度显示【守护进程】
守护进程是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生;它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行;守护进程一般都以root用户权限运行,因为要使用某些特殊的端口(1-1024)或者资源;
2023-10-04 23:30:05 945 1
原创 STM32CubeMX在F103上的ADC注入通道配置异常问题
最近业余时间在搞无刷电机FOC的控制,其中有一部分是关于流过电机三相绕组电流采集的,需要用到STM32内置的ADC,核心是需要使用注入通道以确保ADC数据采集的实时性,但是我在STM32配置完ADC的几个通道后,将几个采集通道逐个接地,发现仅有最后一个通道读取ADC值有效,故写下写这篇博客,以防后面的同志遇到和我一样的问题不知道怎么处理。
2023-03-23 21:36:58 1918 5
原创 嵌入式项目管理学习——001重点明确和心态转换
相信做嵌入式的码哥们在参与一定数量的产品设计和生产之后,都会发现一个问题,如果没有一个负责的产品经理,就会陷入到产品延期、沟通缺失、目标不清晰、需求不明确等等的问题,我目前也是达到了这样一个状态,为了解决这一问题,就开始对项目管理进行了一定的学习。注:以下内容是在研读完《人月神话》和《IT项目经理成长手记》之后的一些心得。
2022-10-24 11:56:24 820
原创 Chapter007-FPGA学习之IIC总线EEPROM读取
IIC总线是嵌入式领域较为重要的器件间通信总线,同样,FPGA也能通过模块的形式实现IIC的功能,其原理和STM32的模拟IIC总线一致,就是控制每个时间点的SCL、SDA总线电平。IIC总线需要对应的从机机通信器件进行通信,故目前使用AT24C64【IIC总线的EEPROM】作为从机,通过实现对EEPROM的读、写,来学习IIC协议在FPGA的实现。...
2022-07-22 23:09:10 929
原创 Chapter006-FPGA学习之LCD显示
作为嵌入式的核心输出手段之一,LCD屏幕在嵌入式领域内也有较高的地位,最基础的内容就是显示图片、字符、触摸控制,顺序学习就需要从底开始,首当其冲的就是LCD屏幕显示。
2022-07-19 23:11:29 4952
原创 Chapter005-FPGA学习之串口回传
串口是嵌入式设备的重要数据传输手段,在基础串口的功能中,实现串口的波特率控制、停止位、校验、数据接收、数据发送即为串口的基础功能,为测试这些基础功能,最简单的实验就是数据回环测试,即将接收到的数据原样回发。...
2022-07-17 22:37:42 683
原创 Chapter004-FPGA学习之IP核相关功能【时钟、RAM、FIFO】
在之前STM32的学习中,认识到无论实现什么功能,有几个基础功能是必不可少的,缺失这些功能则无法将代码以我们想要的逻辑运行下去,STM32因为STM32CubeMX的存在,使得这些功能能够通过图形化配置,建立代码框架,但我们知道,FPGA是硬件电路代码化,其本身并没有已经固化好的功能,比如串口、IIC、SPI等,甚至连RAM和ROM都没有,但这也就是FPGA可以是任何东西的原因,其并未将功能固化到引脚上的同时,各个功能也没有了像STM32一样的引脚束缚。......
2022-07-12 23:28:18 1371
原创 Chapter003-FPGA学习之PWM的LED呼吸灯
核心目标是在FPGA上实现PWM(脉冲宽度调制),同过改变不同PWM周期内的占空比从而改变等效电压,最终实现LED灯的呼吸效果。
2022-07-11 21:52:30 651
原创 Chapter002-FPGA学习之按键控制LED灯和蜂鸣器
本次设计目标是使用按键控制蜂鸣器和两个LED灯按键每按下一次,蜂鸣器由响变为不响,或由不响变为响;按键每按下一次,LED灯的状态变化一次,状态有(00-01-11-10)四种。
2022-07-06 22:35:07 2615 1
原创 Chapter001-FPGA学习之Vivado的LED闪烁
LED闪烁在嵌入式开发设计中地位与“hello world”一致,作为嵌入式项目学习入门的必要实验,其目的是熟悉开发环境的使用、编码规范、关键词使用方法、寄存器概念、时钟概念、复位、仿真、下载程序等嵌入式开发流程的基础部分。所以该章节核心在于学习Vivado软件下FPGA的代码开发、仿真、程序下载这一系列流程。直接打开Vivado软件,在Quick Start选框内选择Create Project接下来会出现新项目建立的导航,在导航内可设置项目名称、项目类型、选择芯片型号;目标是建立一个名称为led_tog
2022-07-05 23:56:20 1075
原创 FPGA学习准备
接下来的一段时间,我会不断更新与FPGA学习有关的博客,以此记录我的学习过程,在基本问题学习基本结束后,我将以几个之前的实际的复杂ARM工程为目标,使用FPGA进行复现
2022-07-04 22:47:40 508
原创 GD32利用CubeMX构建代码的测试
前言近期搞到一块GD32F103c8t6的开发板,号称是和STM32F103C8T6 Pin To Pin兼容的,查了一些资料,很多老哥也搞过类似的测试,多半结果是不兼容,具体哪里不兼容,哪些共功能不兼容,老哥们基本不说,所以我来把基础的功能测试一下,看哪些兼容哪些不兼容;目标本次测试功能:GPIO的输入输出串口发送接收这几部分都是很基础很基础的功能,所以CubeMX的配置我就不发了,大概说明一下,IO输出是PC13,IO输入是PA0,串口TX是PA9,RX是PA10;配置过程我将按键(输
2021-11-28 11:06:21 6725 1
原创 STM32CubeMX通过FatFS读写U盘
最近出现了使用STM32读写U盘的需求,本着自己也出了好多良心博客的份上就像偷懒抄一篇CSDN,但是鉴于某些博主这点小东西都要收费、还不公开源码,一气之下准备自己写一篇博客来谴责某些不良心的博主;(上述气话,接下来上干货)大致思路STM32读写U盘主要分为以下几个方面:1、文件系统(抽象层,以统一方式对不同外设进行读写)2、USB_Host(USB硬件驱动,维持USB的正常工作)3、FreeRTOS(操作系统,鉴于各位可能右用到操作系统的需求加上,也可以裸机跑)具体思想如下:(是不是很简单,就搞
2021-11-06 12:40:07 8949 16
原创 SourceTree对代码版本管理的操作流程及故障处理(不定时更新)
基于Git的版本管理软件众多,这里仅针对我自己所使用的环境进行说明,本来代码使用命令行进行上传问题也不大,但是可视化效果较差,而且有工具不用的话有些对不起人这个称号,所以现在就针对我用的Git版本管理工具进行一定的说明。1、SourceTree的安装在安装SourceTree前,先把Git提前安装了,Git的安装教程网上一大堆,我就不赘述了,想偷懒的同学直接去某软件管家下载一键安装即可。装软件最好是去官网下载,SourceTree的官网,因为在某软件管家上安装的版本非要Bitbucket的账号,且不能
2021-08-12 10:09:13 728
原创 针对嵌入式设备外接设备的驱动开发心得
工作半年,参与的项目里都存在需要外接的设备或是板上的芯片,这些东西都有一个共性,就是需要通过各种通信方式对设备进行控制或是从设备上获取数据,有官方现成驱动的使用官方现成驱动就好,一般问题不大,但是如果有官方驱动效果差或者是官方没有提供驱动的情况就需要自己动手丰衣足食了。该博客仅针对外设官方驱动不满足项目需求或者是官方只给了电文及变量列表,也就是DataShell的情况给出我的一点点建议;1、磨刀不误砍柴工这些外设通常都是通过一些通信接口来与MCU通信,我主要见过的通信方式包括串口(TTL、RS232以
2021-08-10 15:52:25 389
原创 基于STM32CubeMX的片外SPIFLASH嵌入FATFS
最近有一个关于SPIFLASH嵌入FATFS的需求,自己也是第一次搞,在此做一个实验记录,方便后期查看,核心在于STM32CubeMX、SPI、片外Flash、FATFS文件系统
2021-06-14 14:14:50 1819 7
原创 stm32板间串口通信escape协议
最近有使用串口的需求,用于两块板间的TTL串口通信,目前常见的串口通信协议可以归纳为两种模式使用串口和一个定时器的通信协议【严格限制时间,常见协议为Modbus RTU】使用单个串口的通信协议【存在数据头、数据尾,常见协议为三菱PLC使用的串口控制协议】对于上述两种模式的优劣势我是如下理解的:串口加定时器模式能够较好的限制通信时间,优势是在多设备通信过程中不会存在因某个通信包未发送完而导致通信系统瘫痪的问题;其劣势在于MCU板上资源紧张的情况下可能会无法抽出定时器给串口使用,串口通信效率为10
2021-05-27 11:33:09 892
原创 STM32CubeMX的CAN总线波特率设置
最近在搞CAN相关的问题,传输速率从125Kbps到1Mbps不等,由于使用STM32CubeMX作为代码生成平台,所以计算CAN波特率就需要自己动手算,但是算一次又记不住,索性就直接一次算好之后记下来!
2021-04-26 20:43:59 4117
原创 STM32CubeMX的正交编码器encoder
由于最近干活遇到需要获取正交编码的功能,所以返回来研究一下STM32CubeMX的编码器功能,之前也更新过STM32的定时器功能,但是因为之前搞平衡车的正交编码器没有搞清楚原理,就直接用了脉冲输入功能草草了事,现在也算是为之前的年轻买单了,不过看到现有的Encoder说明都比较简单,所以就当是为开发者做贡献了,我研究清楚之后来一篇博客。
2021-04-11 11:13:53 10215 3
原创 运算放大器的简要理解
今天一天入职,第一个接触到的项目就用到了运算放大器,由于长时间写代码,硬件用的也是对应的模块,除了那几个常用的通信总线外其他的模电数电知识已经忘记的差不多了,这就让人很伤心了,虽然写代码多数为数字量和简单模拟量的的控制,但是要把事情做好的话,对每个部分都要有一个大致的认知,所以今天就对运算放大器相关知识进行学习。1.运算放大器是什么?下面图片就是运算放大器的一个简单电路,运放就是中间的三角部分,其输出信号可以是输入信号加、减或微分、积分等数学运算的结果,简而言之就是根据自己搞的电路可以把输入的信号进行一
2020-12-28 17:18:48 2821
原创 嵌入式数据结构以及算法(数据结构篇)
数据结构可以说是嵌入式开发学习中比较重要的一个部分了,而沉迷于基础硬件控制的我到现在才意识到这个东西的重要性可以说是比较迟钝了,但是迟钝总比知道也不学来的好(自我安慰请忽略)下面总结一下经过几天学习学到的数据结构知识和嵌入式开发的最最基本的数据结构对比。
2020-09-01 01:00:03 5149
原创 STM32CubeMonitor的使用第二部分-历史数据存储以及网络访问
上一篇已经简要的说明了STM32CubeMonitor如何将数据通过历史数据图和仪表盘进行组态测试,所以这次要做的是将检测到的数据转为CSV文件存储,作为数据记录。并实现局域网内的网络访问。
2020-06-26 16:40:17 2093 2
原创 STM32CubeMonitor的使用第一部分-数据绘图以及仪表显示
STM32CubeMonitor可以理解为STM32的组态软件,他能快速将STM32运行过程中的变量通过仪表盘或者历史数据曲线图展示出来,而且还包含了大量功能。当由于本刚刚开始学习,且网上关于STM32CubeMonitor的使用教程较少,且大部分都是抄的,所以现在出一系列关于STM32CubeMonitor的实用教程。
2020-06-25 17:31:57 3763 7
原创 STM32CubeMX的Flash读写问题
最近在搞一个项目,其中一个功能是要求将数据保存在STM32的片上Flash,并能够在程序运行时将Flash内的数据读取出来放入RAM中的对应位置,便于设备其他功能对这些不可失数据进行读取、使用。自己瞎搞Flash地址,导致自己搬石头砸自己的脚,还多次进HardFault_Handle,别问为什么,问就是访问量非法地址。
2020-06-18 21:18:30 3838
原创 STM32CubeMX在FreeRTOS下使用串口进行数据收发(不定长度)
STM32在使用操作系统时频繁进出临界区会导致操作系统状态混乱从而造成不知道会发生什么的后果,写程序是不喜欢这些东西的。所以通过定时器、串口中断为操作系统开发串口功能,以免在使用操作系统时对使用AT指令的串口外设造成影响!
2020-05-19 00:33:55 15187 31
原创 基于STM32CubeMX移植freeModbusRTU(从站)
困惑了将近一年多的ModbusRTU在我昨天穷极无聊给自己定目标的情况下搞出来了,以前移植不出来主要原因就是基本功不扎实,没有进一步理解串口和定时器配置的原理,一通操作,移植完之后就Timeout,接下来就分享一下我是怎么从0开始移植这个协议的。项目已上传码云,文章底部有链接!
2020-04-16 11:47:18 11500 73
原创 NodeMCU连接天猫精灵第二集——开发环境、运行条件、工作代码(基于Blinker点灯科技)
NodeMCU连接天猫精灵第一集——硬件构架(基于Blinker点灯科技)根据上面说的硬件部分已经搭建完成了,所以现在说一下软件开发,首先要有一个共识,NodeMCU是可以用Arduino IDE开发的,只需要安装完成Arduino IDE之后进行几个步骤就OK了1.开发环境A.Arduino IDE官方安装地址:Arduino直接下载即可,如果嫌弃官网速度慢的可以自己找资源下载,找不到...
2020-03-19 16:19:45 4096 3
原创 假期战略更新第五集——学习NodeMCU的AD转换(今天不学习,明天变垃圾)
NodeMCU基本信息在前一集已经讲过了,这次说一下ADC(模数转换),从下面图上可以看出,NodeMCU的A0口是有ADC功能的,今天就学习一下这个ADC的功能。是什么,为什么,之前说过了,这次就不说了,这次直接说怎么做,先说一下ADC流程串口初始化ADC存储数组清零主循环开始循环读取ADC的值并求和计算平均值换算为对应电压值串口打印电压值#define ADC_port A0 ...
2020-03-14 11:17:16 1254
原创 假期战略更新第四集——学习NodeMCU的基础控制(今天不学习,明天变垃圾)
STM32越玩约Hi,但是由于今年这个事情,被困在家了,之前又在研究物联网和MQTT等问题,就搞来了ESP8266学习一下,一旦开始研究你就会发现一大堆可以玩的东西,一开始对ESP8266的理解就是一个可以通过AT指令来靠串口对接网络的DTU设备,但是在深入了解的一下之后,就开始了Arduino的学习,可以理解为通过Arduino编写程序后编译为8266的固件,之后烧入8266,使8266兼具通信...
2020-03-13 17:41:07 972
原创 假期战略更新第一集——误差剔除(今天不学习,明天变垃圾)
近段时间有一个项目里的传感器问题一直困扰着我,写控制程序的基础就是传感器获取的数据不说精确到脚指头,起码也要看着像个人,传感器数据波形不说是一条轻微抖动的线,也不能和浪花一样,一波未平一波又起,所以今天就不写控制程序,专门来搞一搞传感器数据误差剔除的工作。目前我了解到的误差剔除方法包括以下几个,见识广博的大神们请往评论区交流一下你们用的方法1.3σ原则3σ原则是在干扰数值服从正态分布的情况下...
2020-02-29 16:27:37 750
原创 记录一下学习嵌入式的方法和小窍门
假期在家忙着闲闲没事做,就趁机把我这一段时间学习嵌入式编程的学习心得在这里分享一下!1.学习动机建立单纯的去学习嵌入式中的某一个东西(除了最基础的点灯按键啥的反馈比较明显的东西)都是很枯燥无味的,所以在学习嵌入式的过程中我比较倾向于要完成一个什么功能、需要的知识、硬件构造、通信方式等归纳一下,一块一块攻破,最后反馈出来的效果就比较明显,方便骗自己。。。嘻嘻嘻嘻嘻嘻嘻。2.硬件文档阅读读那些...
2020-02-23 00:39:42 441
原创 STM32Cube的PWM控制算法篇(一)数字锁相环初步设计Digital phase locked loop
**数字锁相环**Digital phase locked loop数字锁相环是一个通过PID算法使PWM调频改变相位,以达到与目标模型同频同相或同频稳定相位差的目的,在实际应用中较为常见,其中包括齿轮对接、远距离水下超长波低频通信等正弦波函数为毛子要讲正弦波呢?正弦波是一个贼有用的东西,不管是信号通信、电机驱动基本都是正弦波,要了解正弦波就要了解正弦波基本函数结构(放心,中小学知识,...
2019-11-05 17:08:48 8767 4
原创 基于STM32Cube的ModbusRTU编写[保持寄存器读写]
之前我移植了freemodbus的modbusTCP协议,感觉很好用,最近需要写一个基于STM32的modbusRTU就让我比较僵硬,本人至今没有搞懂freemodbus中modbusRTU的串口和定时器是怎么配合的,而且发现很多是要求使用的是RS232或者RS485接口,本人的目的是直接通过电脑串口完成,所以就自己写了一个Modbus的处理协议。关键:只用了一个串口就搞定!!!
2019-10-16 16:10:02 7023 12
原创 STM32Cube的FATFS+SD卡
最近两天由于之前研究的GPS+BD定位信息不只需要获取信息并显示,还需要对当时的信息进行存储,比如说我们在一个地方进行测量,测量人员记录了测量数值和位置,但是不免会出现错误,当然GPS出现错误也有可能,所以我们需要把每次测试的信息和位置同时记录一份,以便工作结束后数据比对校正。我的处理方式就是使用SD卡和FATFS搞定
2019-09-04 14:35:29 5484 10
原创 STM32Cube的串口实战(一)GPS+BD模块
串口系列STM32Cube的串口设置(一)即学即用STM32Cube的串口设置(二)一个串口接收另一个串口发送通过串口设置之前的部分大家应该基本会使用多个串口配合了,今天就来找个东西练练手,第一个拿GPS+BD开刀(用的是ATK_S1216F8_BD模块,STM32F767的芯片)。实验目的【将串口3连接的GPS+BD模块发送的信号转送到串口1通过USB打印出来,搜集其中相关信息获取需要...
2019-09-01 14:49:25 6822 26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人