![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 64
无聊到发博客的菜鸟
加油吧
展开
-
内联汇编简介
在C语言中嵌入汇编(Assembly)代码,可以使用内联汇编(Inline Assembly),这在一些需要精确控制硬件或者优化性能的场合非常有用以下是关于ASM语法的介绍,主要基于GCC(GNU Compiler Collection)提供的内联汇编特性。原创 2024-06-03 10:30:12 · 172 阅读 · 0 评论 -
Makefile教程(附通用模板)
Makefile教程(附通用模板)原创 2024-06-03 10:28:17 · 998 阅读 · 0 评论 -
通过DAPLink和STLink使用RTT输出日志
由于`SEGGER RTT` 自带的 `JLinkRTTViewer.exe` 只支持自家的`J-Link`,所以使用`DAPLink`和`STLink`我们得另辟蹊径,这里我们选择得是PyOCD原创 2023-07-06 09:14:00 · 3719 阅读 · 4 评论 -
基于J-Link RTT Viewer输出日志(适用于JLink DAPLink STLink)
通过RTT输出日志,可以不占额外的引脚和外设,速度非常快,几乎不影响程序的实时性原创 2023-07-04 19:39:51 · 2149 阅读 · 0 评论 -
基于mbedtls的AES加密(C/C++)
高级加密标准(Advanced Encryption Standard,AES),是一种对称加密方式。AES支持三种加密方式:AES128,AES192,AES256,AES128标识密钥长度为128bit,AES128运算速度最快,AES256安全性最佳,三种方式的本质区别是加密轮数不同。原创 2022-12-06 15:23:09 · 2014 阅读 · 0 评论 -
基于OpenSSL的AES加密(C/C++)
高级加密标准(Advanced Encryption Standard,AES),是一种对称加密方式。AES支持三种加密方式:AES128,AES192,AES256,AES128标识密钥长度为128bit,AES128运算速度最快,AES256安全性最佳,三种方式的本质区别是加密轮数不同。原创 2022-11-14 11:18:19 · 5603 阅读 · 10 评论 -
ESP32通过iperf测试WiFi吞吐量
通过iperf工具测试ESP32的WiFi吞吐量原创 2022-08-24 09:50:19 · 1170 阅读 · 0 评论 -
单片机存储结构简述
介绍单片机RO RW ZI字段的含义原创 2022-08-09 21:47:02 · 476 阅读 · 0 评论 -
POSIX消息队列详解与示例
详解mq_open()#include<fcntl.h>#include<sys/stat.h>#include<mqueue.h>mqd_t mq_open(const char *name, int oflag, mode_t mode, struct mq_attr *attr);// 返回消息队列描述符,失败返回-1在fork()中子进程会接收其父进程的消息队列描述符的副本,并且这些描述符会引用同样 的打开着的消息队列描述符。子进程不会继承其父原创 2022-05-16 20:57:25 · 2335 阅读 · 0 评论 -
CRC 8/16/32通用算法(C 语言版)
CRC 8/16/32通用算法原创 2022-04-24 15:34:22 · 1607 阅读 · 3 评论 -
C语言 mktime() gmtime()实现——亲测正确性
写此文章是因为有的嵌入式设备编程时不支持<time.h>,所以有些时间转换的函数必须自己实现。原创 2022-01-05 15:15:31 · 1668 阅读 · 10 评论 -
Linux网络编程之UDP Socket(二)
先看效果程序会将收到的信息又发送给对端流程程序源码#include <stdio.h>#include <stdlib.h>#include <stdint.h>#include <string.h>#include <errno.h>#include <sys/socket.h>#include <arpa/inet.h>#define HOST "192.168.1.164"原创 2021-12-20 20:53:24 · 270 阅读 · 0 评论 -
Linux网络编程之TCP Socket(一)
先看效果客户端发送服务端接收客户端源码连接成功后,可通过键盘输入内容发送到服务端。#include <stdio.h>#include <stdlib.h>#include <stdint.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#define HOST "127.0.0.1" // 服务器原创 2021-12-20 19:59:07 · 467 阅读 · 0 评论 -
C语言 有颜色有等级的日志实现
先看效果只需要调用log.h头文件即可,有LOG_DEBUG,LOG_INFO,LOG_WARN,LOG_ERR四个接口。其中有三个需要配置的地方。①:配置输出的接口,不同平台打印函数不一样;②:LOG等级,DEBUG INFO WARN ERR四个等级依次增高,可以选择输出的最低等级;③:地址分隔符。源码/********************************************************************************* *Autho原创 2021-11-12 16:11:10 · 1375 阅读 · 0 评论 -
Linux网络编程之域名解析DNS(三)
简介域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。常用的域名解析函数有getaddrinfo()和gethostbyname(),一些资料书认为gethostbyname()已经过时且不支持IPv6,更推荐使用getaddrinfo()。gethostbyname()的衍生版本g原创 2021-09-16 15:09:24 · 998 阅读 · 0 评论 -
C语言FIFO
简介First Input First Output的缩写,先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。代码fifo.h/********************************************************************************* *Author: *Date: 2021.05.18 *Description: fi原创 2021-05-18 19:50:01 · 803 阅读 · 0 评论 -
Linux C sqlite3操作二进制文件
一、基本概念对于跟我差不多的初学者来说,有点分不清 SQL MySQL Sqlite3的区别和联系,百度了一圈,简单来说就是:SQL是用于所有数据库的基本语言,MySQL和Sqlite3是两种不同的数据库,MySQL更多的用于服务器,Sqlite3更多的用于嵌入式设备。二、基本语法①安装sqlite3sudo apt-get install sqlite3②创建表...原创 2021-04-02 19:31:31 · 328 阅读 · 0 评论 -
Linux C select()函数
1.功能 select 机制会监听它所负责的所有 socket,当其中一个 socket 或者多个 socket 可读或者可写的时候,它就会返回,而如果所有的 socket 都是不可读或者不可写的时候,这个进程就会被阻塞,直到超时或者 socket 可读写,当 select 函数返回后,可以通过遍历 fdset,来找到就绪的描述符。 简单点说就是,假如想在一个线程处理两个阻塞的socket时,就得用select()函数。2.函数原型int select(int maxfdp1,fd_set *r原创 2021-04-01 22:31:32 · 926 阅读 · 0 评论 -
C语言常用时间相关函数
首先讲一下#include <time.h>和#include <sys/time.h>的区别,前者是C99标准库函数,后者是Linux系统函数,如果Windows平台装了MinGW(Minimalist GNU for Windows)工具也是可以使用<sys/time.h>的,<sys/time.h>中调用了<time.h>。获取时间戳-time函数原型:time_t time(time_t *timer)变量time_t实际上是l原创 2020-11-30 11:31:33 · 1904 阅读 · 0 评论