自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 __CLion的Nova引擎无法启用

在尝试启用Nova引擎时,若遇到重启后未生效的问题,可能是由于插件或缓存冲突所致。解决方法包括三个步骤:首先,完全卸载相关软件并检查安装目录确保彻底删除;其次,清除C盘中的缓存,具体操作为在C盘的用户目录下,删除AppData中的Local和Roaming目录下与CLion相关的JetBrains文件夹内容;最后,重新安装CLion并在安装过程中选择不导入其他JetBrains软件的设置。按照这些步骤操作后,通常可以解决问题,CLion重启后应默认启用Nova引擎,无需再次提示切换。

2025-05-19 00:43:22 290

原创 C++20 module下的LVGL模拟器

14.2:MSVC。

2025-04-23 19:53:23 625

原创 电赛__失真度检测-手机App的制作

11.0应2021年信号失真度测量检查装置的题目要求,需要在手机上显示波形,因此需要开发一个手机App来完成。开发方式有多种,出于性能考量这里选择原生开发,同时需具备一点点Android开发的常识。工程代码都放在最后。

2025-04-22 16:56:21 789

原创 简易OLED库开发__包括搭建模拟器

现有128*64尺寸的oled屏,分成128列和8页,每列每页为8个像素点,且只能对每列每页进行操作,不能进行单个像素点进行操作。虽然有u8g2这个oled库可使用,但由于使用的芯片为TMS320C5509A,u8g2对其来说有些庞大,尤其是编译的时候。因此准备开发一个轻量的oled库,完成线条、字体的绘制。需注意,在TMS320C5509A中最小数据类型char也占16位,为了兼容,此处仍将其当成8位来处理。

2025-04-10 00:44:33 658

原创 VS Code下开发FPGA——FPGA开发体验提升__下

这是插件默认要求的工具链,在扩展设置中可以选择其他几个。在语法解析完成的情况下,对代码的检查可谓是相当给力,点击下方的提示可自动转到。安装完成后,可以在VS Code的设置里,找到扩展选项,再找到安装路径设置,注意斜杠的方向。安装后,把其他相关的Verilog插件禁用,避免可能的冲突。重启后,可能会弹出下面提示。至于前篇提到的内置git不是很好用,在一些插件的帮助下,有了质的提升。点击右上角,可以打开文档,里面有该模块的所有总结信息。不过在使用时,经常会报下面错误,应该是VS Code的日常bug吧。

2025-04-08 17:12:23 923 2

原创 IntelliJ IDEA下开发FPGA——FPGA开发体验提升__上

由于Quartus写代码比较费劲,虽然新版已经有了代码补全,但体验上还有所欠缺。于是使用VS Code开发,效果如下所示,代码样式和基本的代码补全已经可以满足开发,其余工作则交由Quartus完成但VS Code的自带的git功能,说实话并不好用,只能查看更改的,需要手动展开才能浏览全局代码。而合并过程,辨识度并不是很高,容易造成重复代码分支方面并不清晰,虽然提供了多种视图基于此,打算使用CLion试试。在官网上恰好看到了对应的插件,那么也就意味着此法可行。不过官方这个插件似乎还不支持所安装的。

2025-04-07 00:21:24 1211

原创 _二级继电器程控放大倍数自动设置

在开发项目时,有时会遇到需要使用程控放大的时候,如果没有opa那种可编程放大器,那么就需要通过继电器来控制放大倍数的设置。而在继电器程控中,常用的是二级程控,三级程控相较于二级就复杂了许多。而在二级程控中,每级继电器都有两种状态,因此每级都可以设置两个倍数,两级级联共4种放大倍数。对于具体应用场景来说,难的是如何比较好地设置放大倍数,让其可以对输入区间的不同部分进行选择性放大,进而使得增益后的子区间均处于合适的范围。

2025-03-09 21:18:45 764

原创 TMS320VC5509的上手教程__CCS和CLion开发TI工程(间断更新中)

CCS 12.8.1是最后一个包含C55x系列芯片的IDE,CCS20已经去除该组件了。

2025-02-27 16:55:27 1358

原创 __对于初学者的CCS 汉化

CCS安装后默认是英文,目前最新的20版其Help工具栏已经取消了安装软件包的选项。不过,想要汉化还有更简单的方法。

2025-02-26 20:33:11 1542 4

原创 LVGL使用过程中的一点启发__GUI Guider代码转换

最近使用lvgl开发代码时,觉得C语言表现力不够,创建组件的流程有些麻烦,于是打算使用C++的元编程+CRTP模式封装了一些常用的API操作。在链式调用、引用、重载和缺省等功能特性下,使用确实方便了许多,尤其是事件绑定那块,因为GUI Guider的代码编辑器直到1.9.0似乎还无法保存。不过坏处也很明显,不能可视化设计界面,毕竟GUI Guider只支持生成lvgl代码。这显然会大大影响开发效率,即使在工程里嵌入一个模拟器。

2025-02-15 12:48:05 1118

原创 __gcc使用LTO优化出现_kill、_getpid等未定义错误(解决)

把FreeRTOS引入工程后,也会报错,报错位置是在汇编语句块里这应该是LTO的全局优化未能识别汇编代码中的隐式函数引用,做法与前面相同,在函数的声明或者定义前面加上used编译器扩展used确实好用。

2025-02-06 21:19:33 898

原创 【嵌入式】总结——Qt开发(四)

与前面一致,主要目的是为了快速上手体验,并没有深入研究。本篇是对初学Qt的一次总结,并非终点。本阶段的目的是搭建桌面-应用基本框架,并开发一个“App”。正点原子给的综合例程源码使用的是QML,本篇与其一致。人机对战时要注意,AI可以从零生成你要的效果,你让它在此基础上添加或者优化是没有任何问题的,它可以一直给你堆叠特效,但让它修改、修复或调整是很容易出现问题的。讲一个我遇到的,让它生成应用图标的样式,它做得很好,让它在此基础上增加一些点击效果,也没有任何问题。

2025-01-27 14:27:28 940

原创 CLion开发Qt桌面

使用CLion搭建Qt环境,以实现Qt快速开发。使用例程为正点原子imx6ull资料盘的Qt综合例程

2025-01-24 15:58:39 2312

原创 【嵌入式】总结——Linux驱动开发(三)

关于初学Linux驱动的总结

2025-01-23 21:00:05 2489

原创 STM32使用ITM调试_通过仿真器实现串口打印

调试单片机时,如果要打印数据往往需要另接一根线通过USB转TTL接到电脑上。但这样做往往并不方便,尤其是身边没有USB转TTL工具时。这时可以使用单片机自带的ITM单元,仅靠ST-Link仿真器即可实现串口打印,并且可以轻易把波特率设置到M以上的级别。使用ITM进行串口打印并不是什么新方法,IAR、STM32CubeIDE等都集成了相应的调试工具窗口,或者直接使用ST-Link的客户端(可参考博客【嵌入式】CLion & CubeMX。

2025-01-11 22:42:59 1785

原创 __关于STM32全速运行与调试状态结果不一致的参考_HAL

可能是由于复杂的文件包含关系,调试时单片机使用的是system_stm32f4xx.c中的HSE_VALUE的值,而全速运行时,使用的是stm32f4xx_hal_conf.h。查找半天后,发现stm32f4xx_hal_conf.f中的HSE_VALUE的值与system_stm32f4xx.c的HSE_VALUE不一样,移植工程时忽略了这一点。在使用usart控制MP3模块时发现了一个问题,调试时可以正常控制MP3模块,但取消调试改为全速运行时,MP3模块无法响应任何命令。

2025-01-11 18:06:55 209

原创 _STM32关于CPU超频的参考_HAL

168MHz本篇仅仅只是提供超频的简单方法,并未涉及STM32超频极限等问题。原理很简单,通过设置锁相环的倍频系数达到不同的频率,从而实现超频。需要注意的是,运行时切换频率不能直接修改,因为此时用的HSE时钟是经由锁相环产生的,直接修改锁相环会出现问题。解决办法是,切换为HSI并关闭锁相环,然后重新配置锁相环,最后再重新切换HSE。最后切记,超频有风险!!

2025-01-11 17:54:12 1663

原创 使用SDL2搭建简易LVGL模拟器

LVGL是跨平台的,因此无论是单片机的arm32环境,还是PC机的x86_x64环境,都可以使用一份代码完成基本相同的界面效果,这为模拟器的搭建提供了非常有力的支持。对于单片机使用LVGL,如果仅显示界面的情况下,我们是在lv_port_disp.c中给disp_flush这个函数提供了一个接口如LCD_Color_Fill函数,使其可以控制LCD的界面绘制。基于此,只要我们创建一个窗口,把绘制窗口的接口提供给disp_flush,那么即可实现同样的绘制效果。

2025-01-01 20:18:22 2080

原创 _使用CLion的Vcpkg安装SDL2,添加至CMakelists时报错,编译报错

语言:C++20编译器:gcc 14.2摘要:初次使用Vcpkg添加SDL2,出现CMakelists找不到错误、编译缺失main错误、运行失败错误。

2025-01-01 02:30:37 766

原创 嵌入式_GCC14.2初体验_使用Module特性

哈哈嗨,之前看着GCC14.2的模块特性馋得不行,但GCC14.2只做了上位机的,而交叉编译器的还是13.3。苦等了这么久,总算在前些天出了这个版本,那么废话不多说,我们直接开始↗。

2024-12-16 08:00:00 1258

原创 _C#_串口助手_字符串拼接缺失问题(未知原理)

不知道是队列的原因还是SerialPort中Read与ReadExisting的区别,或是字符串与字节数组的原因,亦或是多次接收的数据变为合并为一个数据,总之经过了下面变换,可用了,而且打印效率肉眼可见地提升,不再卡顿了。于是只能怀疑到字符串本身的问题了,由于此前本人是学C/C++的,对C#的字符串原理还不甚了解,大概知道C#的字符串中的“\0”并非作为字符串的结尾。虽然串口发送脚本的速度只提高了一点点,但是日期时间几乎不打印,只有零星几个有,而且整个显示非常卡。虽然变得极其卡,但可以正常显示日期时间了。

2024-11-28 18:16:59 475

原创 嵌入式_串口助手__可以显示图表、进行FFT

缘于博客,出于需要查看串口数据变化情况的需求,又没有找到合适的串口助手,于是临时使用WPF搭建一个串口助手。也因此界面简单,由于使用WPF,相比Qt性能上确实有些堪忧。虽然界面和功能远远不及其它串口助手,不过由于项目比较简单,可以更加定制化地开发,也能满足一些特殊需求,适合练手。本项目工程已经上传到github和gitcode了,功能和界面比较简单,可以当成一个小框架自己继续开发,或者练手。代码里面有不少注释,命名也还比较规范,采用MVVM模式,对初学者应该也比较友好。

2024-11-24 18:35:35 1054

原创 _FYAW智能显示控制仪表的简单使用_串口通信

该仪表可以实时显示位移传感器的测量值,并可设定阈值等。先谈谈简单的使用方法,通过说明书,我们可以知道长按SET键可以进入参数选择状态,按“↑”“↓”可以选择的上一个或者下一个参数。从参数一览中可以看到有不同组的参数,当我们第一次进入参数选择状态时会进入第一组参数,可以设置不同的阈值。只不过由于是数码管,显示字母时会用一些比较奇怪的表达,比如“5”其实就是“S”,可以通过对照参数表,获取不同字母的显示。

2024-11-20 23:54:04 956

原创 单片机_简单AI模型训练与部署__从0到0.9

简单地把AI模型部署在stm32单片机上

2024-11-20 17:29:19 6095 8

原创 单片机工程使用链接优化-flto找不到定义_链接静态库

如果像前面把各种库独立编译,那么在开启链接优化时,会出先下面的报错,总之就是各种找不到定义,连main都找不到这个其实很好理解,使用-flto链接优化时,会把所有资源文件编译后再链接优化一下。那么问题就出现在了编译这块,因为LTO 无法跨静态库边界进行优化,可能导致一些符号无法正确解析。所以需要把所有资源文件统一添加到可执行目标时,LTO 优化的范围涵盖了所有源文件,这样才能正确地处理跨文件的优化和符号解析。当然这也与编译器和连接器有关,不同的编译器和链接器在处理 LTO 时可能有不同的行为。

2024-11-09 15:40:57 986

原创 浅谈单片机的gcc优化级别__以双音频信号发生器为例

gcc有多种优化级别,一般不选择的情况下,IDE默认是按照-Og或这-O2优化的。以gcc编译器为例,浅谈一下优化级别,我们常见的优化一般是指gcc的-O2、-Og。除此之外,gcc还有-Os等一系列优化,链接器也有优化级别。基于单片机的开发,如果关注的是生成代码的大小,那么可以考虑-Os和-Oz。如果在乎性能的话,可以尝试-O2以上的优化级别。

2024-11-09 00:08:45 1086

原创 _处理匿名命名空间里的变量时进入硬件中断错误

如果在 .hpp 文件中匿名命名空间外部定义一个 static 变量,并在同一个文件中定义一个静态内联函数来操作这个变量,然后在其他文件中调用这个内联函数,这种做法仍然会导致每个翻译单元有一个独立的变量副本。之所以使用匿名空间,是因为最近开发的需求中不希望变量或者一些函数外露,但又希望简单一点不使用类,同时接口是模板函数,那么这时候就可以使用匿名命名空间,也算某种意义上的“闭包”。当然对于到处漏风的宏定义除了#undef就没有更好的方法了,匿名命名空间并不属于预处理阶段,所以管不了宏定义。

2024-11-08 22:25:54 422

原创 【嵌入式】GUI Guider_进阶使用_LVGL

依托GUI Guider快速构建一个LVGL模拟器

2024-10-21 14:45:46 5265 3

原创 __问题——进入启动文件_卡死在Default_Handler_死机

进入硬件错误中断,那肯定是发生了硬件错误。但进入Default中断十有八九是没有定义中断处理导致的,因为启动文件里的中断向量表默认指向Default_Handler。如果你使用的是HAL,那么当发生了这种问题后,可以用CubeMX生成初始化代码,重新配置。或者根据CubeMX生成的代码,来观察哪些宏要取消注释,哪些函数要调用。或者不管什么中断回调,硬上中断向量。

2024-10-21 14:15:55 730

原创 【嵌入式】总结——Linux系统移植(二)

坦白来说,这一步是还挺难的。难在哪呢?难在对于全流程的把握上。由于视频教程的版本比较落后了,上网查教程呢,大多都是2022或者2021年的了,即便是2024的教程,里面内容大多是老一套。基本内容要么直接拿正点原子的例程源码,要么放个所谓的NXP官方源码链接,多少有种授人以鱼的感觉。下面将先介绍如何找官方源码,以便后期学有所成之时可以自行更改官方源码。

2024-09-26 23:20:33 1267

原创 __问题——解决CLion开发Linux驱动时显示头文件缺失

这种Makefile可以在终端里执行,但是CLion无法解析,也就无法把linux内核下的include、arch/arm/include等加载到外部库中,那么CLion自然无法识别等头文件。所以此时如果文件夹里没有Makefile,CLion无法加载,如果有Makefile,但Makefile里面往往不会有目标all,比如下面这个led驱动的Makefile。这在很大程度上限制了CLion的发挥,因为无法使用相关代码补全、静态检查等功能了,全被这个缺失的头文件挤占了。

2024-09-26 23:13:29 476

原创 经验——CLion通过SSH远程开发__imx6ull的linux开发

随便创建一个工程,因为主体是在Linux环境里,需要使用Linux的命令行,不需要在本地导入工程。并且由于Linux内核项目的Makefile无法被CLion正确识别,所以无法使用CLion自带的集成工具,比如构建用的小锤子,所以不必配置什么远程工具链但是配置远程工具链时可以顺带建立部署,一举两得,那么就配置远程工具链。

2024-09-24 16:48:14 1817

原创 BUG——IMX6ULL编译正点原子Linux内核报错

的问题,解决办法很简单,在。

2024-09-24 14:06:05 1579

原创 代码——IMX6UL烧录工具及其使用

官方提供的IMX6UL烧录代码,本篇是在正点原子给的代码基础上修改的,增加了些许功能,可根据自己的需求更改。此外代码难免有疏漏之处,还望见谅。

2024-09-18 23:50:25 1305

原创 问题——IMX6UL的uboot无法ping主机或Ubuntu

主要描述可能的方向,不涉具体过程,相应操作可以查阅网上相关教程跟随正点原子教程测试以太网端口时,即便按照步骤多次尝试也无法ping通,后补充了些许网络工程基础知识解决了这个问题。uboot无法ping主机或Ubuntu有多种可能,我所知的有以下几种情况——物理上未连接或连接松动——防火墙没有关——uboot的ip地址、子网掩码等配置错误——…………这次我所遇到的是第三种,这种情况比较复杂,有可能是虚拟机或主机网络配置错误、ip地址和子网掩码找错等。

2024-09-16 01:35:45 1856

原创 总结——薄基础_Android开发_简易计算器__非教程

应该算是水了一篇?

2024-09-11 16:40:58 1121

原创 【嵌入式】总结&参考——Linux下的裸机驱动开发(一)

使用make其实就是为了简化操作,有些麻烦的操作流程能省就省,比如烧录这一操作,视频教程里总是会在命令行里输入./imxdownload xxx.bin /dev/sdx,这样做就显得很麻烦,因为自己开发过程中,挂载到设备树上的sd设备往往是同一个,序号不会变。于是可以自己定义一个规则,专门用于烧录,每次需要烧录时,直接make download。如果觉得还是太长,可以把规则名改短一点download:这次学习,除了“由简入深,方能深入浅出”以外。

2024-08-22 15:50:25 1822 1

原创 BUG——GT911上电后中断一直触发

算是作为一个后来者对这一现象的补充。解决方案就是在中断开启前主动清零,详情可见本篇末尾,点击目录【总结】具体情形是,上电之后,本应不会触发中断,结果却一直疯跳,14s左右进入1400多次中断,与扫描频率100Hz相近。中断开启前,以10ms左右的延时清零8次左右即可解决问题,当然具体情况具体讨论,在这个参考上调整一下。i < 8;i++)源码在下面,都是在正点原子代码的基础上微调一下Touch.h源码/* 触摸屏结构体 *//* X轴坐标 *//* Y轴坐标 */

2024-08-21 20:52:26 1959

原创 BUG——imx6u开发_结构体导致的死机问题(未解决)

奇葩的结构体问题,真心解决不了

2024-08-20 00:35:48 645

原创 经验——OLED的使用

OLED的初始化,这算是借鉴吗?

2024-07-25 14:07:38 643

电赛-失真度检测-手机App的演示

如题,演示失真度App的使用,参考博客

2025-04-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除