- 博客(53)
- 资源 (9)
- 收藏
- 关注
原创 振荡电路仿真与分析
仿真原理使用示波器(右侧边栏)进行信号分析,发现信号从交流变为直流,并且信号实现了放大。采集分压6V信号,观察在示波器中的位置原理分析 Vmax与Vmax为主控产生的参考电压,操作界面设置0~100,设置0对应的为Vmax,设置100对应的为Vmin,即设置数值越大,反应更加灵敏。问题分析ZKB_v2.8.1 振荡信号:12V供电,抬升电压为6V,振动信号放大6倍(200K/33K)。 参考电压:占空比为10%~40%,...
2023-02-26 09:26:15
953
原创 dumpbin工具的使用
之前安装Visual Studio 2019,自带dumpbin工具,设置下环境变量,设置后确认环境变量是否添加成功同时按下Ctrl + Shift,右击鼠标按键,选择在终端中打开,进行此工具的使用。
2022-11-01 12:57:32
760
原创 一篇就够之编译器
ARMCC,即ARM Compiler 5,虽然是自家开发的编译器,其实是基于gcc开源编译器开发ARMClang,即ARM Compiler 6,基于clang编译器开发 如果编译的程序最终在ARM内核MCU上运行,使用的编译器则是基于gcc开发的交叉编译器,在gcc名称前会有很多前缀,命名规则大体如下:使用vscode搭建STM32的开发环境,所使用的的编译器就是arm-none-eabi-gcc在i.mx6ull编译linux的应用程序,使用的是linaro公司基于gcc开发的,名称为arm
2022-07-01 13:16:41
611
原创 程序员的终极思维方式:系统论
系统论是研究系统的结构、特点、行为、动态、原则、规律以及系统间的联系,并对其功能进行数学描述的新兴学科。系统论的基本思想是把研究和处理的对象看作一个整体系统来对待。系统论的主要任务就是以系统为对象,从整体出发来研究系统整体和组成系统整体各要素的相互关系,从本质上说明其结构、功能、行为和动态,以把握系统整体,达到最优的目标。如果说,还原论是拆解,那么系统论,就是组装。稍微对哲学有一点了解的人,看到我说“程序员都是还原论者”都不会觉得“还原论者都是只见局部,不见整体的”。比如科学家,一生只研究一个很小的题目,比
2022-06-30 10:23:43
453
原创 Typora导入优快云
问题说明MD文件的图片为本地图片,实际为一串表示相对路径的字符串,上传到优快云后,显示的是这串字符串,而非图片,因此需要把图片转换成一个可以访问此图片的链接。问题分析原理类似于百度网盘,先存储资源再生成链接。使用阿里云的OSS负责存储服务,服务申请及搭建的过程参考文章阿里云搭建图床使用图床工具(类似于百度网盘)进行图片自动上传及链接转换。问题处理配置图床ID及密码参考位置如下:存储空间的名称即创建的Bucket的名称,Bucket是比object更加高级的对象,具有计
2022-04-30 10:06:27
759
原创 一篇就够系列之LAN8720的使用
系统框图LAN8720是一款PHY芯片,寄存器配置与数据传输的接口是相互独立的,寄存器配置接口为SMI,数据传输接口为RMII,SMI接口为一根时钟线,一根数据线,被称做串行管理接口,RMII接口用来传输数据,相比MII接口,更加精简,被称做精简MII接口,其中字母R即reduced。功能说明收发器 PHY芯片具备的基础功能。自动协商 纯粹是物理层活动,其执行与MAC控制器无关。自动MDIX 此功能意味着发送、接...
2022-04-26 15:00:23
9600
2
原创 01-基本工具
概念图片模式 位图是一堆像素块,矢量图是点和线组成。 制作logo用的都是矢量图,满足不同场景下的大小需求。色彩模式 与印刷相关的都是CMYK四色模式 与电子显示相关的都是RGB三色模式,手机UI相关的都用RGB即可 CMYK可以转RGB,反之不可快捷键抓手 SPACE 缩放 Alt + 滑轮 复制 Alt + 左键 旋转 Shift ...
2022-04-24 14:21:17
138
原创 动画对象(lv_anim_t)的应用
效果一:按钮运动 注意:回放效果为编辑器添加,而非代码实现的回放效果。代码实现void anim_x_cb(void *var,int32_t v){ lv_obj_set_x(var,v);}void lv_100ask_demo_course_2_1_1(void){ //1、建立对象 lv_obj_t *btn = lv_btn_create(lv_scr_act()); lv_obj_align(btn,LV_ALIGN_LE...
2022-04-24 14:20:20
3274
原创 弹性流(flex-flow)的应用
接口说明在使用弹性布局时,需要考虑两个问题,第一个问题是排列时的方向及是否换行?第二个问题是排列时一行的元素如何放置、不同高度元素如何对齐及整个内容区域如何放置? 第一个问题使用lv_obj_set_flex_flow()接口即可,参数选择按行排列或者按行+换行排列即可。 第二个问题使用lv_obj_set_flex_align()接口,此接口有三个入口参数,宏定义相同,但作用不同,第一个参数负责改变每行元素的间距(参考效果三),第二个参数负责改变每行...
2022-04-24 14:19:49
3096
原创 风格样式(style)的应用
说明:样式变量必须使用静态、全局或动态分配。效果一:为label添加样式,实现字体为红色代码实现 /*1、样式声明*/ static lv_style_t style; //必须添加static否则无效果 lv_style_init(&style); /*2、样式设置*/ lv_style_set_text_color(&style,lv_color_hex(0xFF0000)); lv_obj_t *...
2022-04-24 14:19:18
423
原创 平移(translation)及变形(transform)的应用
效果一:按压按钮,向上平移(translation)代码实现 static lv_style_t def; lv_style_init(&def); lv_style_set_x(&def,100); lv_style_set_y(&def,100); lv_style_set_size(&def,50); static lv_style_t pres; lv_style_init(&pres)
2022-04-24 14:17:56
1049
原创 定时器(timer)的应用
效果一:实现数字0-9的循环演示代码实现lv_timer_cb_t label_timer_callback(lv_timer_t *timer){ //方案A if(++cnt == '9' + 1) { cnt = '0'; } lv_label_set_text(label,&cnt);}void lv_100ask_demo_course_2_1_1(void){ label = lv_label_c
2022-04-24 14:16:14
1727
原创 图片对象(lv_img_t)的应用
说明1、使用lv_img_create()进行创建。2、使用LV_IMG_DECLARE声明素材。 3、使用lv_img_set_src()与图片进行关联。效果一:显示图片代码实现//图片声明LV_IMG_DECLARE(img_src_system_info)void lv_100ask_demo_course_2_1_1(void){ lv_obj_set_style_bg_color(lv_scr_act(),...
2022-04-24 14:15:17
2352
原创 屏幕对象(lv_obj_t)的应用
说明 lv_obj_t对象本质上为根容器(container),用来放入一些控件,使用lv_obj_create()进行创建,对于更复杂的控件,则需使用lv_xx_create()实现。效果一:创建新屏幕(背景为黄色)程序中创建的按钮为默认界面的按钮,由于加载了新的界面,会覆盖默认界面。代码实现void lv_100ask_demo_course_2_1_1(void){ //为默认界面创建按钮 lv_obj_t *btn = lv_btn_cr...
2022-04-24 14:14:23
2005
原创 MVC、MVP与MVVM的区别
关于MVCModel:封装、保存、同步数据Controller:负责业务逻辑、根据用户行为或条件修改Model数据View:数据可视化关于MVP此架构可以防止Model与View的直接交流,相对于MVC少了些许灵活,在应用变大后,Presenter的体积也会增大,难以维护。为解决这个问题,出现了MVVM。关于MVVM ViewModel可以自动响应Model数据变化,自动更新View视图,建立了视图与数据的耦合,减少了维护视图与数据两者关...
2022-04-15 21:47:16
1314
原创 FLASH抽象层(FAL)程序的应用(rt-thread)
FLASH设备结构体fash的名称:on_chip_flash_16k_part、on_chip_flash_128k_partstruct fal_flash_dev{ char name[FAL_DEV_NAME_MAX]; /* flash device start address and len */ uint32_t addr; size_t len; /* the block size in the flash for erase mini
2022-03-05 09:07:49
474
原创 sizeof的使用要点
要点01数组名当做指针使用,但其自身并不是指针。说明int main(void){ int b[10]; int *pt = b; while (1) { res = sizeof(b); //40 res = sizeof(pt); //4 }}要点02 获取结构体大小。说明typedef struct _STDENTS{ int name; int ...
2022-02-08 09:35:05
296
原创 CAN总线的错误帧现象
现象一 逆变器干扰导致的错误。现象二 终端电阻并联过多,差分电平幅值太小,造成节点识别失败。现象三 支线过长,下降沿台阶升高,造成通讯位宽失调。现象四 卡车控制大灯时,造成的耦合干扰。现象五 波特率异常造成的干扰。...
2021-10-30 13:15:44
4952
原创 一篇就够系列之Ethernet网卡驱动开发
相关概念 描述符 描述一个事物的数据结构,在C语言中就是struct,在java中就是class。ETH框图在进行数据发送时,首先将数据由系统存储器以 DMA 的方式送至发送 FIFO (Tx FIFO) 进行缓冲,再通过 MAC 内核发送。同样,接收 FIFO (Rx FIFO) 则存储通过线路接收的以太网帧,直到这些帧通过 DMA 传送到系统存储器。以太网外设还包括用于与外部 PHY 通信的 SMI。通过一组配置寄存...
2021-09-10 14:22:11
4260
原创 CAN通讯在不同处理器下的实现方式
F103—固件库配置GPIO中断工作模式过滤器发送设置发送报文调用库发送函数接收F427—HAL库CAN的发送部分
cpu_test介绍F427主频180MRT1052主频600M实验截图软件架构说明安装教程xxxxxxxxxxxx使用说明xxxxxxxxxxxx参与贡献Fork 本仓库新建 Feat_xxx 分支提交代码新建 Pull Request特技使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.mdGitee 官方博客 blog.gitee.com你可以 https://gitee.com/exp
2021-08-09 18:10:22
2086
原创 EasyARM_RT1052的BootLoader程序
程序结构xmodem1k_clientboot_data_programgp_xmodem_fun总结xmodem1k_client 此函数按照1K XMODEM协议,操作串口,将数据传递到FLASH里面。有两个入口参数,第一个入口参数按照地址和数据长度操作FLASH;第二个入口参数为串口相关的操作函数。boot_data_program 操作FLASH,写入程序。gp_xmodem_fun总结 一个串口有收发功能,我们把这些功能起一个抽象的函数名,然后把这些抽象的函数打包成一个结构
2021-08-09 16:38:48
889
原创 EasyARM_RT1052外设初始化
外设初始化GPIO初始化复用初始化属性PAD初始化模式初始化安全外设总线加密引擎(BEE)数据协处理器(DCP)安全非易失存储(SNVS)GPIO初始化复用初始化属性PAD初始化模式初始化安全外设总线加密引擎(BEE)支持QSPI的运行时解密,适用于固件加密与解密的应用。数据协处理器(DCP)支持AES-128、SHA-1、SHA256、CRC32计算。安全非易失存储(SNVS)...
2021-08-09 16:38:15
870
原创 EasyARM开发板移植LwIP
正点原子写的《STM32F4 LWIP 开发手册 V3.0》里面,将LWIP的移植分为了两种:裸机下的移植OS下的移植裸机下移植
2021-08-09 16:34:48
297
原创 代码格式化工具Astyle的配置(keil)
-p !E -A1 -xV -S -Y -f -p -U -k3 -j-A1 使用AllMan程序风格,即大括号另起一行。-xV 设置do-while的格式-S 设置sitch-case里面case的缩进值-Y 注释代码(//comment)进行缩进-f 在if-for-while程序块前后加空行-p 在运算符前后加空格-xg 在逗号之后加空格-U 去除内部或者外部括号两边的空格-k3 ...
2021-06-30 08:08:05
1293
原创 小米手环硬件构成及原理图
小米手环2代原理图(PDF版)链接: https://pan.baidu.com/s/1P-Q52DAGVzaPgVVrounMrQ 提取码:ziac复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享
2021-01-31 19:14:28
5271
原创 无线通讯技术对比
背景智能家居、工业数据采集中应用的无线通讯技术,一般为WIFI、蓝牙等技术,此类技术通讯距离都比较近,随着物联网技术的发展,需要通讯距离更远的技术支撑,虽然之前有移动蜂窝,但是用过2G模组的应该清楚,此类模组功耗大、价格不便宜。因此诞生了LPWAN。LPWANLORA从应用角度讲,LORA分为透传应用和LoraWAN应用,简单说即需要网关和不需要网关。不需要网关的话LORA模组类似433无线模组,两个模组点对点通信,或者点对多通信。需要网关的基本是做水/电/气表应用的,但是问题在于做仪表的做网关属于
2021-01-06 15:48:48
954
3
原创 RS485接口EMC电路设计
一、原理图1、RS485接口6KV防雷电路设计方案rs485接口EMC电路设计方案(防雷/滤波及防护电路原理图)图1 RS485接口防雷电路接口电路设计概述:RS485用于设备与计算机或其它设备之间通讯,在产品应用中其走线多与电源、功率信号等混合在一起,存在EMC隐患。本方案从EMC原理上,进行了相关的抑制干扰和抗敏感度的设计,从设计层次解决EMC问题。电路EMC设计说明:(1) 电路滤波设计要点:L1为共模电感,共模电感能够对衰减共模干扰,对单板内部的干扰以及外部的干扰都能抑制,能提
2020-12-02 08:48:06
759
原创 TP-Link无线路由模式总结
AP模式说明:将LAN信号(网线)转无线使用情形:只有一根能上网的网线,想让手机等无线设备联网。客户端模式说明:将无线信号转有线使用情形:只有无线信号,想让台式机等有线设备联网。无线路由模式说明:将WAN信号(网线)转无线信号中继模式说明:将WIFI名称为demo(示例)的弱信号放大为WIFI名称为demo的信号桥接模式说明:将WIFI名称为demo(示例)的弱信号放大为WIFI名称为其它名称(自行设置)的信号...
2020-11-21 21:00:58
2871
原创 【QT】线程使用总结
作用:解决槽函数响应过程中遇到的阻塞问题使用方式:子类化QThread子类化QObject要点:1、槽函数相应之前,一定要对操作的对象进行判断,如果启动线程需要判断线程是否在运行(Running);启动定时器就要判断定时器是否工作(Active)。2、两种方式在开启线程的时候有所不同,第一种由于重写Run函数,因此直接Start即可;第二种直接Start后,需要发送信号来调用线程中的槽函数,同样,线程可以发送信号来通知外部槽函数做出响应。3、两种方式在遇到while时,使用Quit函数都
2020-11-11 09:15:59
837
原创 STM32L011D4烧写程序
ST-Link连不上芯片,使用以下步骤进行处理步骤一:按上图进行配置步骤二:短接RESET引脚,点击下载按钮,然后立即取消短接,进度条进行则下载成功注意:取消短接过早会出现无法连接芯片的报错,取消短接过晚会出现Could not stop Cortex-M device报错,成功下载后,再次下载就正常了...
2020-09-27 12:59:11
1365
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人