C/C++
socbis
这个作者很懒,什么都没留下…
展开
-
自己实现c库string.h
uint32_t strlen(uint8_t *str){ uint8_t i = 0; while(str[i++]); return i - 1;}uint8_t strcmp(uint8_t *str, uint8_t *str1){ uint8_t i = 0; uint8_t len = strlen(str); if(strlen(str) != strlen(str1)) return 1; while(str原创 2021-06-13 15:51:40 · 125 阅读 · 0 评论 -
使用C语言,控制终端颜色输出,打印等级
#ifndef __DEBUG_H__#define __DEBUG_H__#include <stdio.h>/** Export define ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */#define NONE "\e[0m" //清除颜色,即之后的打印为正常输出,之前的不受影响#define BLACK "\e[0;30m" //深黑#define L_BLA原创 2021-05-15 00:34:21 · 592 阅读 · 2 评论 -
C语言中的const static volatile
C语言中的static const volatile说明1.static关键字2.const关键字3.volatile关键字说明以下C代码均在裸机1.static关键字static关键字有两层含义:1. 修饰的变量的在程序运行时内存常驻当static修饰变量时,该变量被编译器分配在内存的全局区,程序运行时,该变量的生命周期伴随整个程序。在裸机开发中,可以认为静态变量的物理地址是静态...原创 2020-04-17 17:01:56 · 332 阅读 · 0 评论 -
C语言,宏的字符串化
背景:目前项目中牵扯到多节点通讯,而每个节点都需要有ID,这个ID分别以hex格式,字符串格式各存一份,但每次改设备ID都得两个都改,于是想试试在字符串中可不可以使用宏定义来避免这个问题。正文:首先,定义两个宏#define DeviceID 0x33U#define ID(x) #x然后在函数中调用这个宏 printf("%s\r\n", ID(DeviceID));...原创 2019-12-09 14:25:37 · 1519 阅读 · 0 评论 -
linux对空文件mmap后的Bus Error问题
准备写一个EMMC测速程序,在写完后得到Bus Error错误。错误源代码如下,使用 O_CREAT参数创建一个新的文件。#include <stdint.h>#include <stdio.h>#include <unistd.h>#include <sys/mman.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#defin原创 2021-03-12 14:30:44 · 749 阅读 · 0 评论 -
linux c 系统时间设置与获取,clock_settime()
linux c 设置系统时间网上大部分都是陈旧的方法,在我的内核(linux 5.4)中默认没启用 settimeofday()函数.#include <stdio.h>#include <time.h>#include <sys/time.h>旧的方法void SetSysTime(void){ struct tm tim = { .tm_year = 2021 - 1900, .tm_mon = 3 - 1,原创 2021-03-10 18:32:13 · 3373 阅读 · 0 评论 -
使用STM32实现心跳包,非阻塞延迟
背景:项目中要使用485通信,而485通信中采用的主呼从应的方式需要一个超时时间,在呼叫指令发出时将定时器置0并开始计时,并在数据接收函数中判断是否超时。正文:设计思路:首先,需要一个定时产生中断的定时器(比如滴答定时器,CubeMX生成的工程滴答定时器默认为1ms中断一次),然后可以在这个定时器中断函数中做多个计数器,每次进入后计数器加1,并判断是否到达溢出条件。代码实现:...原创 2020-04-16 11:54:52 · 4771 阅读 · 1 评论 -
C随机数
/* * * 随机数 * * 编写程序,首先得到一个0~99之间的随机数,然后让用户猜这个数字 * 每次猜完都要给出提示:猜大了or猜小了or猜对了 * 直到猜对游戏结束 * * */#include <stdio.h>#include <stdlib.h>#include <time.h>void main(){ .原创 2020-07-16 12:48:18 · 471 阅读 · 0 评论