C语言
文章平均质量分 54
whik1194
这个作者很懒,什么都没留下…
展开
-
C语言实现十六进制字符串转整形
【代码】C语言实现十六进制字符串转整形。原创 2023-11-01 20:22:12 · 381 阅读 · 0 评论 -
C语言实现从指定位置(偏移地址)截取文件内容
更方便的,可以argc参数,来实现通过指定输入文件路径和指定偏移量。偏移量设定为10,截取后的。原创 2023-11-01 20:19:08 · 506 阅读 · 0 评论 -
C语言实现获取文件大小、创建时间、修改时间(stat结构体)
【代码】C语言获取文件大小、创建时间、修改时间(stat结构体)原创 2023-11-01 20:06:29 · 1794 阅读 · 1 评论 -
C语言位域、struct和union的联合使用
【代码】C语言位域、struct和union的联合使用。原创 2023-07-06 15:06:03 · 426 阅读 · 0 评论 -
基于C语言的开源csv解析库:MiniCSV使用示例
C语言解析csv格式文件,本文介绍一个开源简洁的csv解析库的使用:MiniCSV,使用标准C语言设计。一个小型、快速、简单、单文件、BSD许可的C语言CSV解析库。应该能够处理CSV的奇怪之处:多行、转义行、转义列中的转义字符、空行、列数可变的行、Windows或Unix风格的行结尾。不执行任何堆分配。开源地址。原创 2023-07-01 15:21:18 · 1834 阅读 · 1 评论 -
C语言解析csv格式文件
基于C语言实现对CSV格式文件内容的解析。原创 2023-06-04 14:00:09 · 928 阅读 · 0 评论 -
C语言控制台程序添加图标(基于GCC编译器)
控制台程序添加图标文件工程实例,使用GCC编译器原创 2022-08-09 23:16:40 · 2031 阅读 · 0 评论 -
C语言实现的简易日志log库,带颜色显示
log.c文件/**日志打印示例。使用:Log(DEBUG, "This is debug info\n");结果:[2018-07-22 23:37:27:172] [DEBUG] [main.cpp:5] This is debug info默认打印当前时间(精确到毫秒)、文件名称、行号。*/#include <stdarg.h>#include <stdio.h>#include <string.h>#include <time.h&.原创 2022-01-10 14:18:06 · 1374 阅读 · 0 评论 -
C语言实现获取文件后缀、修改后缀
用于实现读取某个类型的文件,如txt,然后对文件内容进行处理之后,输出到另一个文件csv。需要根据指定的输入文件绝对路径,得到修改后缀之后的文件绝对路径,用于在本地创建。首先是获取文件绝对路径字符串中的后缀(扩展名),实现思路是,右边第一.之后的字符串就是文件扩展名。/* pFilePath:文件的绝对路径 pOutFileExt:文件的后缀名 pOutFileName:不含文件后缀的文件路径 return:0-执行成功, -1-执行失败*/int GetFileE原创 2022-01-09 15:43:29 · 3985 阅读 · 2 评论 -
一文看懂Modbus协议
文章目录Modbus是什么?4种数据类型3种传输模式3类功能码数据帧格式Modbus-RTU数据帧Modbus-ASCII数据帧Modbus-TCP数据帧两种请求模式单播模式广播模式Modbus地址规则Modbus扩展版本标准文档下载Modbus是什么?Modbus协议,首先从字面理解它包括Mod和Bus两部分,首先它是一种bus,即总线协议,和I2C、SPI类似,总线就意味着有主机,有从机,这些设备在同一条总线上。Modbus支持单主机,多个从机,最多支持247个从机设备。关于Mod,因为这种协议最原创 2021-07-07 09:38:35 · 6112 阅读 · 6 评论 -
C语言实现生成BMP图片文件(BMP文件格式,二进制文件读写)
BMP文件格式详解参考:BMP文件格式详解C语言实现生成BMP#include <stdio.h>#include <stdlib.h>#include <stdint.h>/* * @fileName: bmp file name: test.bmp * @width : bmp pixel width: 32bit * @height : bmp pixel width: 32bit * @color : R[8]/G[8]/B[8]原创 2021-04-05 12:50:52 · 9101 阅读 · 2 评论 -
CRC校验原理及其C语言实现
文章目录目录前言CRC算法简介CRC参数模型CRC计算CRC校验CRC计算的C语言实现CRC计算工具总结参考资料目录前言CRC算法简介CRC计算CRC校验CRC计算的C语言实现CRC计算工具总结前言最近的工作中,要实现对通信数据的CRC计算,所以花了两天的时间好好研究了一下,周末有时间整理了一下笔记。一个完整的数据帧通常由以下部分构成:校验位是为了保证数据在传输过程中的完整性,采用一种指定的算法对原始数据进行计算,得出的一个校验值。接收方接收到数据时,采用同样的校验算法对原始数原创 2020-09-27 22:00:06 · 17622 阅读 · 20 评论 -
21个常用的CRC参数模型C语言实现
文章目录开源地址常用的21个参数模型CRC计算工具C语言实现开源地址GitHub:https://github.com/whik/crc-lib-cGitee:https://gitee.com/whik/crc-lib-c包含常用的21个CRC参数模型实现常用的21个参数模型CRC计算工具在线计算工具:www.ip33.com/crc.html离线计算工具:CRC_Calc v0.1:http://xz.w10a.com/Small/CRCJISUANQI.zip格西CRC计原创 2020-09-27 21:49:44 · 3599 阅读 · 1 评论 -
Keil环境下使用Jansson构建JSON——基于STM32F103
文章目录构建普通的JSON键值对构建嵌套的JSON对象包含数组的JSON对象Jansson解析JSON示例:使用Jansson库解析JSON构建普通的JSON键值对JSON字符串:{ "status": true, "age": 20, "score": 78.4, "name": "whik1194", "blog": "https://blog.csdn.net/whik1194", "wechat": "mcu149"}JSON构建函数:#include "jansson_原创 2020-09-15 11:47:37 · 1628 阅读 · 9 评论 -
C语言查表法实现CRC-16计算
文章目录函数实现示例代码运行结果函数实现/* 16 bit CRC with polynomial x^16+x^12+x^5+1*/uint16_t crc16_compute(const uint16_t initial_value,const uint8_t *data,const uint32_t data_length){ uint16_t crc = initial_value; uint32_t idx = 0; const uint16_t crc原创 2020-09-10 16:59:00 · 2723 阅读 · 1 评论 -
C语言查表法实现CRC-32 IEEE 802.3算法
CRC-32 IEEE802.3校验算法C语言实现原创 2020-09-10 11:29:47 · 5988 阅读 · 7 评论 -
UNIX时间戳和北京时间的相互转换
文章目录什么是时间戳头文件time.h介绍UNIX时间戳转北京时间北京时间转UNIX时间戳写成函数和调用示例什么是时间戳准确的说,应该是unix时间戳,是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。在很多的数据中,更新时间并不是一个字符串,而是一个长整形数据,如1593003485,表示是北京时间2020-06-24 20:58:05。注意这里直接换算出的是北京时间,如果用时原创 2020-06-24 22:10:44 · 3871 阅读 · 0 评论 -
如何从零写一个串口printf函数
对于STM32//硬件驱动#include "usart.h"#include "delay.h"//C库#include <stdarg.h>#include <string.h>#include <stdio.h>void MyUartPrintf(USART_TypeDef *USARTx, char *fmt,...){ unsigned char UsartPrintfBuf[296]; va_list ap; unsigned c原创 2020-05-22 15:47:32 · 540 阅读 · 1 评论 -
Jlink使用技巧之读取STM32内部的程序
前言上一篇Jlink系列文章介绍了如何使用J-Flash来下载Hex或Bin文件到单片机,具体可参考Jlink使用技巧之单独下载HEX文件到单片机,本篇文章介绍,如何使用JFlash来读取单片机的程序,学习单片机程序文件的读取,不是为了破解别人的程序,而是学习破解的原理,从而更好保护自己的程序不被破解,希望大家也能尊重他人的劳动成果。JFlash的下载和安装首先,安装JFlash软件,安装完...原创 2019-01-06 20:26:35 · 9338 阅读 · 2 评论 -
Jlink使用技巧之合并烧写文件
前言IAP(In-application-programming),即在应用中编程。当产品发布之后,可以通过网络方便的升级固件程序,而不需要拆机下载程序。IAP系统的固件一般由两部分组成,即BootLoader Code和Application Code,并存储在不同起始地址的空间里:系统运行时,先运行Bootloader程序,检测状态,判断是执行应用程序还是升级固件。在实际开发过程中,这两...原创 2019-01-17 14:48:33 · 3479 阅读 · 0 评论 -
一键自动格式化你的代码
AStyle简介AStyle,即Artistic Style,是一个可用于C, C++, C++/CLI, Objective‑C, C# 和Java编程语言格式化和美化的工具。我们在使用编辑器的缩进(TAB)功能时,由于不同编辑器的差别,有的插入的是制表符,有的是2个空格,有的是4个空格。这样如果别人用另一个编辑器来阅读程序时,可能会由于缩进的不同,导致阅读效果一团糟。为了解决这个问题,使用C...原创 2019-01-23 18:43:58 · 3490 阅读 · 0 评论 -
C语言学习之结构体
前言一直以来,C语言的学习都在入门阶段,只用到数组、函数、循环、选择、位运算这些基本的知识,较少用到指针、预处理、结构体、枚举类型、文件操作等这些C语言的精髓内容,现在想想真不敢说自己熟练掌握C语言的使用,所以最近几篇文章是关于这些内容的,一方面是巩固自己的C语言编程能力,另一方面也为以后学习C++做准备。什么是结构体C语言的结构体实际上就是一种特殊的数据类型,只不过这种数据类型包括了很多...原创 2019-02-19 17:41:17 · 655 阅读 · 0 评论 -
Qt小项目之串口助手控制LED
Qt小项目之串口助手控制LED前言最近刚学了一点Qt开发上位机,尝试着做个小软件练练手。查找了很多资料,做了一个简单的串口助手,可以实现串口基本发送和接收功能,支持中文显示,还可以控制STM32开发板上的两个LED。1.软件界面2.主要功能:启动自动搜索本机串口,或者手动点击搜索键扫描串口自定义波特率支持中文显示支持发送新行3.实际效果:花了大概3天时间吧,找了很多资...原创 2019-03-03 13:31:41 · 3171 阅读 · 4 评论 -
C语言学习之联合类型
前言联合(union)是一种特殊的数据类型,和结构体很像,结构体各成员变量有自己独立的存储位置,而联合的成员变量共享同一片存储区域,因此联合变量再一个时刻只能保存它的某一个成员的值。联合的定义和初始化联合的定义方式与结构体是一样的,只是把关键字 struct 改成 union:union [标签名称]{ 成员声明列表};下面的例子定义了一个名为Data的联合类型,它有 3 个成员...原创 2019-02-27 13:01:00 · 837 阅读 · 0 评论 -
Keil报错:cannot open source input file “core_cmInstr.h“ 解决办法
前言前几天在面包板社区申请了一块uFun开发板,昨天刚到手,在烧录Demo程序的时候遇到一个问题,就是Keil打开工程,编译,报很多错误cannot open source input file "core_cmInstr.h,然后搜索了一些资料,最后解决了这个小问题,以下是解决办法。Demo程序文件夹里有两个Keil的工程文件,一个是Keil4对应的,一个是Keil5的,可以说uFun还是考...原创 2019-03-09 13:37:12 · 23502 阅读 · 6 评论 -
【UFUN开发板评测】小巧而不失精致,简单而不失内涵——uFun开发板开箱爆照
关于uFun学习板——“满满的爱和正能量”uFun是由@张进东 张工组织发起的一个开源的学习板,设计初衷是为了帮助学生更好的理解电子知识和开发技巧,同时又能对学生毕业找工作有很明显的帮助。张工于2014年10月提出这个想法,并发到了博客上,不久就得到了全国各地几十位小伙伴的支持和响应,大家天南海北,筹钱献力,多位在职工程师,利用业余时间共同设计了这块学习板,经过几次的设计验证,还有一些厂商的...原创 2019-03-09 15:07:09 · 722 阅读 · 0 评论 -
基于uFUN开发板的心率计(三)Qt上位机的实现
前言上两周利用周末的时间,分别写了基于uFUN开发板的心率计(一)DMA方式获取传感器数据和基于uFUN开发板的心率计(二)动态阈值算法获取心率值,介绍了AD采集传感器数据和数据的滤波处理获取心率值。这篇文章主要是介绍Qt上位机如何实现波形的显示,串口数据的解析,以及一些小细节实现。这篇文章写完,uFUN心率计这个小项目就算结束了,最近又做了个uFUN开发板的扩展板,在微信群里的朋友都已经看到...原创 2019-04-05 17:23:09 · 1438 阅读 · 1 评论 -
基于uFUN开发板和扩展板的联网校准时钟
项目概述上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种小设计应该说是烂大街了吧!我一开始学习51的时候做了个可按键校准、带闹钟功能的时钟,学习STM32的时候做了个可以手机蓝牙APP校准的时钟,现在又用uFUN开发板做了个时钟,不过这个时钟是联网校准的...原创 2019-04-09 14:38:38 · 1271 阅读 · 0 评论 -
QLineEdit限制数据类型——只能输入浮点型数
前言最近做了一个小的上位机,要通过串口来下发几个时间参数,为了防止误输入,产生不必要的麻烦,我把输入范围限制在0-680的浮点型数据,支持小数点后2位。学习了一下QLineEdit类是如何限制输入类型的。本来是想写一个函数,在下发参数时,传QLineEdit的字符串参数进去,然后判断是否合法,如果不合法,则不下发参数,请用户修改后再确认。这么做也实现了,但是想Qt这么强大,应该会考虑到这一点的,...原创 2019-06-24 17:56:26 · 4601 阅读 · 1 评论 -
Qt平台下使用QJson解析和构建JSON字符串
前言上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣的工具了,如全国油价查询工具,全国天气查询,空气质量查询,黄历查询,生活指数等等实用工具的开发。分享几个免费的API提供平台:K780:http://www.k780.com/api天气API...原创 2019-07-23 22:05:02 · 1777 阅读 · 1 评论 -
使用cJSON库解析和构建JSON字符串
使用cJSON库解析和构建JSON字符串前言其实之前的两篇博文已经介绍了json格式和如何使用cJSON库来解析JSON:使用cJSON库解析JSONJSON简介当时在MCU平台上使用时,会出现时间长了死机的情况,在调用cJSON_Print输出格式化后的JSON数据之后, LOG("JSON数据:\n%s\n", cJSON_Print(root)); 要使用cJSON...原创 2019-07-21 23:13:56 · 705 阅读 · 0 评论 -
STM32F407外部晶振改为25M后芯片死机检测不到芯片的解决办法
问题:使用正点原子的STM32F407代码,下载到外部晶体为25MHz的开发板上,LED不闪烁,串口无输出,单片机直接死机,调试器检测不到芯片。问题分析:正点原子的STM32F407探索者开发板,焊接的是8M的晶体,而官方固件库里默认为25M的晶体,所以在正点原子的开发教程和示例代码中都把官方库做了一定的修改,即:官方固件,适用于外部25M晶体:stm32f4xx.h文件122行:...原创 2019-08-12 16:28:02 · 3292 阅读 · 1 评论 -
一个将当前目录下HEX文件的第一行数据删除的程序
为什么要写这样一个函数在使用SoftConsole开发M3程序时,生成的hex文件,必须要把第一行数据删除,才能在Libero中使用,所以写了这个小工具,这是2.0版本了,第一版是直接删除第一行数据,有可能会导致误操作。实现原理主要使用到了bat批处理命令和文件IO操作。创建bat批处理文件,内容为dir *.hex /b&gt;hex_file_name.txt运行bat命令,这个命...原创 2018-10-29 21:32:12 · 534 阅读 · 0 评论