- 博客(109)
- 资源 (13)
- 收藏
- 关注
原创 ubuntu22.04搭建orangepi5plus开发环境
把这个文件放在任意目录下,然后执行:chmod +x buiild_5p_driver.sh && ./buiild_5p_driver.sh 即可。在运行前请确保能打开github(建议使用翻墙软件)中图不报错的话就可以了,然后在makefile中把交叉编译链和内核路径修改一下。有问题请加微信:lingtu15679003191。搭建orangepi5plus的开发环境可谓是一波三折,为此我总结了一个脚本文件全自动搭建环境。buiild_env_5p_driver.sh 文件内容。
2023-08-29 10:30:21
1406
1
原创 stm32烧录hal库固件后keil检测不到芯片,无法下载,但是按着复位键能下载和检测到芯片
keil检测不到芯片的原因有很多,我的原因是没有在stm32cubemx中配置下载方式。配置好后重新下载代码就可以检测到芯片了。
2023-07-04 12:29:13
1491
原创 error: ‘WM_DPICHANGED‘ undeclared (first use in this function)|解决办法
https://github.com/lvgl/lv_port_win_codeblocks/issues/31 在文中的最后有解决办法链接,现在我只是总结一下,防止再次掉坑!选择 Settings ->Compiler -> Toolchain Executables。踩坑无数,才解决这个问题,软件重新装和卸载了5次!最后点击OK,然后大概率就可以愉快的玩耍了。
2023-06-22 20:39:23
793
2
原创 ESP32C3之PlatformIO IDE开发环境
注意board_build.flash_mode = dio 一定需要添加,否则板子无法启动,upload_port = COM9为你的电脑所在的端口号;;;;;;;;;
2023-05-17 20:26:12
1250
原创 cadence17.4在quick place器件时显示cannot find symbol
cadence17.4在quick place器件时显示cannot find symbol,一个器件都没有摆放,并且导入网表时没有出错,那么请检查psm的路径和pad路径中的第一项$$padpath是否删除。没有删除也会导致cannot find symbol。
2022-11-15 20:21:31
2544
1
原创 嵌入式Linux驱动开发(一)——Hello Module驱动程序开发
由于我们设置的默认消息日志为6,而当前控制台日志等级为7所以,default的日志消息打印了,同时KERN_EMERG日志等级为0,所以这个消息日志也打印了。由于我们当前控制台日志等级为7,而KERN_DEBUG日志等级为7,所以在hellomodule_exit函数中的。想要理解这两个宏的作用,那么我们应该找到这两个宏的定义处,在include\linux下的init.h中定义的。make modules:执行Linux顶层Makefile的伪目标,它实现内核模块的源码读取并编译为.ko文件。
2022-11-05 09:01:03
842
原创 嵌入式Linux应用开发基础知识(七)——通用Makefile使用
主要有三个文件,分别是Makefile Makefile.build 说明.txt 这三个文件的内容如下:Makefile:Makefile.build说明.txt2. 通用Makefile使用方法实验文件:main.csub.csub2.csub3.csub.hsub2.hsub3.h文件结构为:相关的目录结构如下图所示:修改顶层目录和各自目录Makefile的obj-y:这表示要编译当前目录下的xxx.c, 要编译当前目录下的yyy子目录根目录下有main.c和sub
2022-08-07 22:03:40
942
原创 嵌入式Linux应用开发基础知识(六)——Makefile实例
前面我们学了很多Makefile相关的知识,但是没有写过一个完整的代码,这一章我们写出一个实例。
2022-08-07 18:17:46
756
原创 嵌入式Linux应用开发基础知识(五)——Makefile函数
Makefile类似于一门编程语言,也有相应的函数,这一章我们介绍常用的Makefile函数。
2022-08-06 20:56:19
535
原创 嵌入式Linux应用开发基础知识(四)——Makefile语法
什么是通配符?学过其他编程语言的可能只要什么叫通配符,通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符。Makefile具有较多通配符,但是常见的也就几种。如下所示:以下为上节课我们使用的Makefile文件我们将使用通配符进行改进,实现我们使用%.o和%.c文件进行改进,运行逻辑:$@表示目标 , $...
2022-08-06 16:46:48
1271
原创 嵌入式Linux应用开发基础知识(三)——Makefile入门
使用keil、mdk、avr等工具开发时,点点鼠标就可以编译了,但是你是否理解它的内部机制呢?它是怎么组织管理程序的?怎么决定编译哪一个文件的?这些其实都是和Makefile息息相关。
2022-08-05 22:36:13
243
原创 嵌入式Linux应用开发基础知识(二)——GCC总体选项
main.csub.csub.h2.2 -C选项-C选项是预处理、编译和汇编源文件,但是不作链接,所以生成的文件后缀为 .o 。我们可以使用如下命令逐一处理:经过这一步我们就生成了main.o和sub.o OBJ文件, 如果我们想生成可执行文件的话,需要将这两个OBJ文件进行链接。编译记录:是不是突然会有疑问,使用可以达到相同的作用,而且还省这么多步骤,如果有几百上千的源文件,当我们只修改了其中一个文件时,采用上述一条命令进行编译的话,编译速度相当慢,我们就可以采用-C选项单独编译修改的源
2022-08-05 20:55:51
839
原创 嵌入式Linux应用开发基础知识(一)——GCC编译过程
目前很多IDE(集成开发环境)把编译过程封装的很好,导致很多嵌入式软件工程师不知道一个C程序的具体的编译过程,这一章我们来讲讲C程序的编译过程。
2022-08-04 22:13:07
655
原创 allgero报错:Program has encountered a problem and must exit. The design will be saved as a .SAV file
解决办法
2022-06-01 10:18:44
9192
10
原创 唐老师讲运算放大器(第七讲)——运放的应用
二、有源滤波器三、无源低通滤波器四、一阶低通有源滤波器五、二阶低通滤波器比一阶阻带下降的更快应用举例(注意:滤波器处的两次RC不一定要相等)二阶低通滤波器的幅频特性:解决Sallen-Key 低通滤波器高频馈通的三个方法:Sallen-Key 低通滤波器高频馈通是指在二阶低通滤波器中能通过高频信号的现象:比如设计的低通滤波器的截止频率为28Hz,结果能通过28KHz的噪声干扰,有以下几种解决办法:还有一种办法图下图所示,加入一个运放作为缓冲器。实际设计案例六、二阶...
2022-05-22 10:14:30
5506
原创 唐老师讲运算放大器(第六讲)——运放的应用
一、积分电路二、微分电路四、指数运算电路五 对数运算电路六、仪表放大电路下图为常见的INA128的内部框图若将5号管脚接地,也即Vref=0V,那么此电路为标准的仪表放大器电路,此时:Vo=(1+50K/RG)*(VIN±VIN-)若将5号管脚接某一正直流电压,也即Vref=XV,那么Vo=(1+50K/RG)*(VIN±VIN-)+Vref。 若输出的信号直接给单片机的ADC,一般采用该种方式进行连接,这样就可以省去了将负电压抬升至0电位以上。INA128用于测量心电
2022-05-21 15:38:57
6954
原创 唐老师讲运算放大器(第五讲)——运放的应用
一、常见运放的应用二、运放用于电源降压图示的D1为2.5V稳压管,若VIN=12V,那么运放的同相输入端为2.5V,又虚短可知,反向输入端的电压也为2.5V,那么Rfb2和Rfb1中间节点的电压为2.5V,此时,有运算放大器的性质可知,VoutR1/(R1+R2)=V-=V+=2.5V,??? 假设R1为2K,若Vout=5V,那么R2=2K。下图和上图类似,只是下图多了R37和C43构成的低通滤波器,若把这两个去掉,和上图基本一致。下图为LM2596的内部框图, LM2596的内部稳压原理和上
2022-05-21 14:22:14
9793
3
原创 唐老师讲运算放大器(第四讲)——运放相关参数及选型指南
一、运放放大器选型要点一是看供电电压,一般分为三个等级5V,12-16V, 24V等。供电电压的选择也要考虑放大后的信号幅度值。注意保持一定的富余量二是看OPA的GBW和SW,这两个参数一定要满足要求三是看成本,在满足性能要求的基础上当然选价格低的运放二、选型实例如下图所示,要满足一下基本要求:一是负载1K,这个参数需要看Isc,这个参数得, 用放大后的信号幅度值/1K得出电流值,这个电流值为临界电流值,我们选择的运放Isc得大于这个计算的结果,比如图示的200mVpp,一半周期的话为1
2022-05-21 09:04:43
2748
原创 唐老师讲运算放大器(第三讲)——运放相关参数及选型指南
九、 输入电压范围轨到轨:意思是输出或者输入电压的范围和供电范围的临界程度,若很接近,则轨到轨,否则不是轨到轨(例如十中的LM324),又分为输入轨到轨(输入电压范围很接近电源电压范围)和输出轨到轨(输出电压范围很接近电源电压范围)十、 输出电压范围十一、 短路电流十二、 输入阻抗(越大越好)常用运放运放选型TI放大器的命名规范TI精密放大器家族精密运放的选型指南...
2022-05-20 09:20:17
1245
原创 唐老师讲运算放大器(第二讲)——运放的供电电压VS、输入偏置电流IB、噪声VN,输入失调电压VOS,增益带宽积,压摆率
一、 运放的虚短和虚断虚短: 同相输入端短接反向输入端,也即图示u- = u+虚断:同相输入端和反向输入端断开,也即图示 i- = i+ = 0二、 输入偏置电流Ib输入偏置电流Ib为流入或流出同相和反相输入端的电流的平均值,理想运放该电流值为0,但是实际上是不为0的,计算公式如下图所示。低Ib一般用于检测电流很小很小的场合三、 噪声Vn噪声是固有的,随机的, 本身无法消除的,噪声当然越小越好,尤其在放大小信号时,比如1mV的信号,噪声为10mV当然不行。四、 静态电流Iq
2022-05-18 19:43:14
6003
2
原创 唐老师讲运算放大器(第一讲)——运算放大器分类和参数
如何看懂运放数据手册?Power Supply 为正电源-负电源的绝对值,所以如果是5V,采用单电源应为5V,双电源应为±2.5V下图为绝对最大范围,带有±的为双电源的最大最小值,如不超过±18V,若没有标注±,只有+或者没有,那么用双电源时应为一般,如+7V的那个, 双电源时±3.5V...
2022-05-18 17:07:08
843
1
原创 正点原子STM32 ISP电路分析
最近想画一块STM32的开发板,需要设计ISP自动下载电路,在此借鉴正点原子的ISP自动下载电路的硬件设计。由于模拟电路不是很精通,本章结合PSpice进行仿真理解ISP的原理。1. STM32的启动方式讲到下载方式,一定得首先首先知道STM32的启动方式。STM32一共有三种其中方式,如下图所示BOOT0BOOT1启动方式0X内部FLASH10系统存储器11内部RAM内部FLASH通常对应的是我们使用下载器进行烧录,比如常用的Jlink、ST.
2022-05-13 12:26:38
5013
2
原创 STM32核心板设计——电源设计
1. STM32 数据手册电源部分研读RTC电源管脚为V BAT, 电源范围为1.8~3.6V,主要用于RTC时钟的供电, RTC在大部分场合用于保存一些重要的参数,比如在电脑主板上用于保存boss的信息, 如果这个电源丢了将导致无法重启,在单片机中低功耗设备常常也会使用这个RTC进行定时的唤醒功能,在普通的MCU中常用于做实时时钟。VDD为数字电源,电源范围也是1.8~3.6V,在芯片内部集成了电压转化器,一般芯片内核供电为1.2V,图示的Regulator为转换器,将VDD电源稳压至1.2V。数据
2022-04-29 21:48:54
14694
原创 SPI电路设计
之前一直用SPI器件, 但是呢,没有从根本上理解这个通信协议,这一篇文章将主要介绍硬件设计1. 什么是SPI协议?SPI(Serial Perripheral Interface,串行外围设备接口)是摩托罗拉(Motorola)公司推出的一种同步串行接口技术,是一种高速的、全双工、同步的通信总线。常作为MCU外设芯片串行扩展接口,主要应用于EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器和数字信号解码器之间。2. SPI通信原理2.1 采用主从模式的控制方式SPI规定了两个SPI.
2022-04-29 09:25:59
10266
原创 I2C电路设计
I2C协议已经用了很多了,但是呢,在硬件设计方面,基本也是只会抄抄电路,并没有理解其中的原理和细节。这一章我们具体要说说需要怎么设计I2C电路。1. 什么是I2C?I2C Bus(Inter-Integrated Circuit Bus) 最早是由Philips半导体(现被NXP收购)开发的两线时串行总线,常用于微控制器与外设之间的连接。这里要注意IIC是为了与低速设备通信而发明的,所以IIC的传输速率比不上SPI1.1 硬件连接I2C仅需两根线就可以支持一主多从或者多主连接,I2C使用两个双向.
2022-04-28 11:50:33
6573
原创 TTL转RS232电路设计
在硬件设计中会涉及很多电平,其中包括TTL、RS232、RS485等等,常常需要将电平进行转化,这章我们看看怎么设计RS232转换电路1. 常见电平1.1 TTL供电范围在0~5V;如74系列都是5V供电对输出:大于2.7V是高电平;小于0.5V是低电平对输入:大于2V是高电平;小于0.8V是低电平注意:TTL电平输入脚悬空时内部认为是高电平,且TTL电平输出不能驱动CMOS电平输入。1.2 CMOS供电范围在3~15V;如4000系列(4011与非门) 假设5V供电对输出:大于.
2022-04-28 09:55:27
6771
原创 LED电路设计
每天积累一点小知识1. LED基本知识对LED要有深入的了解,我们首先需要了解LED的一些基本知识,其次还要了解LED的性能指标,因为LED性能指标是整个LED的核心部分。下图为LED的基础知识:2. LED二极管注意事项3. 常见的LED硬件设计如图所示,常见的LED设计如上图所示上方电路采用低电平触发,此时电流流入MCU,此时的电流为灌电流,STM32支持最大灌电流为20mA,建议采用该种方式驱动LED下方电路采用高电平触发,此时电流流出MCU,此时的电流为拉电流,STM32支.
2022-04-28 09:02:39
798
原创 按键电路设计
说起按键,这应该是最常见的人机交互方式了,几乎所有的电子产品都会带有,这篇文章带大家看看按键电路怎么设计1. 按键抖动在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片机处理的速度在“微秒”级,而按键抖动的时间至少在“毫秒”级。单片机如果在触点抖动期间检测按键的通断状态,则可能导致判断出错,即按键一次按下或释放被错误地认为是多次操.
2022-04-27 22:11:22
21426
原创 STM32 JTAG电路设计
学习需要刨根问底1. 什么是JTAG?JTAG(Joint Test Action Group)是一个接口,为了这个接口成立了一个小组叫JTAG小组,它成立于1985年,比推丸菌的年龄还大。 在1990年IEEE觉得一切妥当,于是发布了 IEEE Standard 1149.1-1990,并命名为 Standard Test Access Port and Boundary-Scan Architecture,这就是大名鼎鼎的JTAG了。2. JTAG用在哪里?JTAG的三大功能你知道吗,响当当.
2022-04-27 14:50:24
12607
1
原创 STM32 复位电路设计
在此之前我是个只会抄写原理图的工程师,每当遇到一个问题时,确需要解决很久,最根本的原因在于不明白其中的原理,这次补充一下单片机复位电路设计1. 为什么要设计复位电路?在做一件事情之前需要明白为什么要这么做,我们为什么要设计复位电路呢?一下几点原因是我总结出来的。当你的电脑出现卡死等问题的时候,大部分人会直接重启(攻城狮除外),目前市面上很多电子产品都会用复位按键,所以一个成熟的产品是大概率需要复位的在产品调试阶段,尤其在调试软件的时候需要经常复位软件, 有些工程师也会采用软件复位, 不过软件复.
2022-04-27 09:24:38
31715
8
原创 无缘晶振匹配电容计算方法
以前设计晶振部分电路是按照网上原理图一大抄来的,平常应用没有问题,如果在对晶振频率要求比较高的场合就很有问题了,现在以我的观点来说说晶振的匹配电容是怎么计算来的,如果不想往下看,也可以记住一个经验值:大约为晶振数据手册的匹配电容的1.5倍左右1、基础知识1.1 晶振数据手册相关参数以下所有参数来自于台湾晶技 HC-49SMD 8M 20pF 20ppm的无缘晶振,相关参数如下图所示:1.1.1 Frequency Tolerance(频率误差)频率误差也叫为调整频差,指的是在规定条件下,基准.
2022-04-26 17:34:20
2642
原创 ST官网获取并生成常用PCB EDA工具的原理图库和封装库方法
1 下载库文件1.1 进入官网查找ST的官网地址:网址: https://www.st.com/content/st_com/zh.html 在搜索框中输入你想要的芯片型号,这里以STM32F103C6T6为例选择需要的芯片点击CAD资源再选择CAD格式与下载1.2 配置器件库标号1选择芯片型号标号2选择原理图库视图,相关选项解释点击后面的 i 选项标号3选择PCB封装的视图,有简约视图和详细视图标号4选择该芯片的封装类似配置好后点击选择并下载CAD格式。标号1处选择
2022-04-24 10:10:15
4207
原创 STM32CubeIDE报错 undefined reference to
解决办法:检查头文件的后缀名是否用了大写,如下图2. 工程没有配置源文件路径右击工程名->Properties->C/C++ General->Source Location处添加源文件路径(每次新增源文件文件夹需要在此处添加)...
2022-04-01 14:36:28
11232
4
原创 uniapp使用MQTT协议连接emqx
由于项目需求需要在项目中使用MQTT协议,特意做了以下文章记录过程一、安装环境在uniapp项目根目录下分别运行安装mqtt(安装3.0.0版本的,最新版会有点小问题)和uuid的命令行,因为后面会用uuid生成mqtt的clientId,所以这边就一起安装了。npm install mqtt@3.0.0npm install uuid二、具体使用步骤1. 页面引入mqtt并调用1.1 mqtt连接配置参数,放在/utils/mqtt.js里面,全局可用。mqtt.js内容expor.
2021-12-19 09:19:16
3163
3
原创 uni-app开发蓝牙ble智能设备
最近需要开发一个APP通过蓝牙配置esp32c3的一些参数的项目,之前也接触过移动端开发,所以这次选择uniapp来实现这个项目。参考资料: uniapp官方文档:https://uniapp.dcloud.io/README一. 新建工程我使用的是HBuilder编辑器,新建工程的话按照官方文档中的新建一个uni ui项目模板的工程。二. 替换工程的代码将工程文件下的page/index/index.vue替换为下面的代码。<template> <view>.
2021-11-08 22:52:12
5774
2
原创 匿名上位机V7波形显示教程
1. 下位机程序1.1 协议文档分析匿名科创在V7版本的协议文档上给出了很详细的范例,所以下位机程序非常好写,笔者是第一次写匿名上位机的下位机程序。以STM32发送一个无符号16位的数据为例讲解下位机程序的书写。1.1.1 官方协议文档1.1.1.1 查找方法打开上位机,把鼠标慢慢移动到左侧的边框处,等待一会会弹出左侧菜单栏点击弹出的菜单栏中的帮助信息子菜单点击通信协议自动使用pdf阅读器打开文件名为ANO_XIEYI.pdf的文档(如果电脑没有显示pdf阅读器,不知道是否能显
2021-10-25 19:10:49
5277
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人