- 博客(7)
- 资源 (3)
- 收藏
- 关注
原创 介绍一个单片机代码可用的静态测试工具——CppCheck
什么是静态测试按照《系统分析师教程》里给出的定义,静态测试指被测程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段进行检测,其中静态测试包括对文档的静态测试和对代码的静态测试。正常流程下,静态测试包含桌面检查、代码审查和代码走查,由若干程序员和测试人员开个会,磕着瓜子聊着天把代码看一遍来检查存在的问题以及不合理的地方(系分考试差点挂在静态测试上。。)然而作为小作坊里的单片机工程师,兼单片机、上位机、Linux、调电路板、出原理图、画PCB为一身的任务,不用出机械结构图就已经很庆幸了,所以不用考
2021-11-29 23:36:29
2775
原创 STM32 C++编程系列2.5:让Keil MDK工程支持现代C++特性及填坑
一、问题背景利用STM32CubeMX建立的Keil工程中,默认是使用AC5(Arm Compiler 5)编译器的,该编译器仅支持C99标准和C++98标准,无法支持现代C++(C++11之后由于添加了大量现代编程语言特性而被称作现代C++),且AC5编译速度的慢也是有目共睹的,因此我们选用更新更强大的AC6(Arm Compiler 6)来给我们的开发(折腾)上一个新的台阶。毕竟C++11之后出现的大量新特性还是很香的,不在STM32这个平台上大显身手就可惜了。比如强大的auto关键字:auto
2021-11-29 21:49:52
10388
15
原创 Qt读写JSON文件
包含头文件:#include <QJsonArray>#include <QJsonObject>#include <QJsonDocument>具体步骤:一、读出字符串QFile json_file(filepath);json_file.open(QIODevice::ReadOnly | QIODevice::Text);if(json_file.open(QIODevice::ReadOnly | QIODevice::Text)){
2021-11-21 13:17:36
2054
原创 STM32 C++编程系列二:STM32 C++代码封装初探
一、STM32与面向对象编程上一章中提到了,C++的核心之一就在于面向对象思想。相比C语言常用的面向过程编程,面向对象编程的优势在于继承、封装、多态的特性,利用这种思想更有助于我们的程序实现模块化、抽象化。C++是一种天然支持面向对象编程的语言,在C语言的基础上,C++不仅提供了class关键字和类与对象的概念,使开发者可以清晰方便的实现面向对象编程。C++还支持数据封装和数据隐藏,支持继承和函数重载,因此可以有效的提高程序代码的复用程度。实际上,这种面向对象编程思想尤其适合单片机这类以操作外设为主的平
2021-10-30 01:31:00
4877
4
原创 STM32 C++编程系列一:STM32 C++编程介绍
一、STM32及其他单片机开发现状在目前绝大部分的单片机开发当中,C语言占据着主流的地位,但由于C语言本身是一种面向过程的语言,因此在当前利用面向对象思想构建可复用代码为主流的今天显得比较麻烦,很多人写单片机程序时都会遇到一个问题,明明写的是同一种外设或者同一个处理流程,可程序却经常会写出诸如void PWM1_Init(){}void PWM2_Init(){}void PWM3_Init(){}...之类的代码出来。究其原因,还是对编程过程中做封装理解不够,同时又由于使用C语言
2021-10-29 00:50:57
20198
12
原创 STM32 串口使用IDLE中断+DMA接收(HAL库函数)
STM32 串口使用IDLE中断+DMA接收(HAL库函数)一、开发环境单片机型号:STM32H743IIT6工程配置环境:STM32CubeMX 6.3.0固件库:STM32CubeH7 1.9.0开发工具:MDK Keil 5.32二、原理过程在STM32上接9个串口,每个串口约收发50个字节数据每帧,若使用传统的按字节中断HAL_UART_Receive_IT()的方式,则会因中断响应过于频繁导致系统响应不过来,因此需要使用IDLE中断+DMA接收的方式接收数据。DMA的作用是无需CPU
2021-10-28 16:18:15
7689
1
压缩感知理论与应用
2018-12-03
稀疏重构空间谱估计
2018-02-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人