C语言
xuehu96
C++是世界上最好的语言
展开
-
C++容器(一)bitset 用法大全
头文件:#include <bitset>构造std::bitset<16> foo;std::bitset<16> bar (0xfa2);std::bitset<16> baz (std::string("0101111001"));访问bitsetoperator[] :返回pos的位(bool)[不执行边界检查]count1的个数 .count()0的个数 .size()-.count()size : 个数tes原创 2021-03-13 11:14:09 · 525 阅读 · 0 评论 -
FreeRTOS学习(八)ESP32 Arduino创建FreeRTOS Demo
1.ESP32 Arduino安装文件->首选项 添加开发吧管理网址:https://dl.espressif.com/dl/package_esp32_index.json工具->开发板->开发板管理器,搜索ESP32,点安装(此过程可能需要科学上网)选择开发板2.编写 FreeRTOS的程序ESP32是双核的,用一个loop简直太浪费了,xTaskCreate和CSDK是一样的void setup() { Serial.begin(9600); delay原创 2020-09-16 17:29:45 · 2114 阅读 · 0 评论 -
Air724Lua调用C_SDK
在lua里调用CSDK里的函数步骤首先需要在\app\elua\modules\include\ auxmods.h中声明模块名字和模块初始化函数#define AUXLIB_XUEHU "xuehu"LUALIB_API int ( luaopen_xuehu )( lua_State *L );在app\elua\platform\openat\include\ platform_conf.h文件中完成将模块名和初始化函数注册到lua内核中_ROM( AUXLIB_XUEHU原创 2020-09-08 11:05:20 · 833 阅读 · 0 评论 -
LTC2496 16通道单端差分ADC采集数据
介绍The LTC ® 2496 is a 16-channel (8-differential) 16-bit NoLatency ΔΣ™ ADC with Easy Drive™ technology. The pat-ented sampling scheme eliminates dynamic input currenterrors and the shortcomings of on-chip buffering throughautomatic cancellation of dif原创 2020-06-07 11:22:42 · 1722 阅读 · 1 评论 -
JC24B 2.4G无线模块配置
模块图引脚功能结构定义(头文件)//typedef unsigned char u8;typedef u8* pu8;//typedef unsigned short u16;typedef struct _jc24b_data_t{ u8 rf_cmd1; u8 rf_cmd2; u16 rf_node_id; u16 rf_net_id; u8 nc1; u8 rf_power; u8 nc2; u8 rf_baud;原创 2020-06-02 16:33:34 · 2019 阅读 · 0 评论 -
FreeRTOS学习(七)事件组 Event Groups
创建事件标志#define event_1 (1<<1)#define event_2 (1<<2)创建事件组 xEventGroupCreate()#include “FreeRTOS.h”#include “event_groups.h”EventGroupHandle_t xEventGroupCreate( void );//例子EventGro...原创 2020-04-25 20:43:53 · 2732 阅读 · 1 评论 -
FreeRTOS学习(六)软件定时器 XTimer
FreeRTOS软件定时器可以在任务和中断中启动,时间到后触发回调创建软件定时器 xTimerCreate创建定时器,并不会启动TimerHandle_t xTimerCreate( const char * const pcTimerName, //定时器名称(调试用) const TickType_t xTimerPeriodInTicks,//周期(单位tick) cons...原创 2020-04-25 20:26:20 · 7799 阅读 · 2 评论 -
FreeRTOS学习(四)延时——时间片的操作(vTaskDelay/ vTaskDelayUntil)
延时Delay就是交出CPU一段时间,如果任务一直不延时或者挂起,那么低优先级的任务会无法获得CPU。FreeRTOS延时的单位是tick,就是调度的基本单位(不是毫秒)vTaskDelay和vTaskDelayUntil都是延时函数,vTaskDelayUntil是精确延时函数原型void vTaskDelay( const TickType_t xTicksToDelay )vo...原创 2020-04-20 11:00:08 · 18343 阅读 · 0 评论 -
FreeRTOS学习(三)任务的挂起和恢复(vTaskSuspend / vTaskResume)
0.开发环境用ESP8266的FreeRTOS的开发环境做实验,打开msys2,输入cdsrc从官方的示例文件复制一个GPIO的例子,编译一次(如何编译请看上一篇文章)编译指令make -j4 all flash monitor1. 任务创建//创建两个任务 函数 任务名 栈大小 参数 优先级 任务句柄xTaskCreate(led_...原创 2020-04-18 23:10:43 · 6075 阅读 · 0 评论 -
C语言库学习(七):Linux库minixml3.1实验
minixml库官网 https://www.msweet.org/mxml/下载库 git clone https://github.com/michaelrsweet/mxml.git或者国内镜像 git clone https://gitee.com/xuehu96/mxml.git安装./configure --enable-threads=no makesudo make ...原创 2020-03-14 11:50:12 · 508 阅读 · 0 评论 -
C语言库学习(六):libevent库Linux练习
libevent创建一个事件处理框架event_base_new创建一个事件event_new事件添加到时间处理框架上event_add开始循环事件event_base_dispatch释放资源event_base_freelibevent的安装官网:http://libevent.org/下载:wget https://github.com/libevent/lib...原创 2020-03-13 22:04:45 · 201 阅读 · 0 评论 -
C语言库学习(五):Linux线程pthread库
线程进程 最小分配单位 线程 最小执行单位线程优点:提高并发性占用资源小通信方便线程缺点:调试困难库函数 不稳定对信号支持不好Linux中线程是库函数实现的,Linux查看线程库版本getconf GNU_LIBPTHREAD_VERSION,编译时需要加gcc参数-lpthread创建一个线程 pthread_create#include <pthrea...原创 2020-03-07 10:00:47 · 428 阅读 · 0 评论 -
C语言库学习(四):用libredwg解析cad的dwg文件——第一版(qt)
开始首先下载LibreDWG的源代码,git clone https://github.com/LibreDWG/libredwg.git下载完成后,把src文件夹和include文件夹复制到qt工程目录下jsmn文件夹是空的,也需要下载git clone https://github.com/zserge/jsmn第一次失败的尝试第一次用libredwg-0.10.1.2969-w...原创 2020-03-05 21:34:20 · 11694 阅读 · 12 评论 -
C语言库学习(三):用cJSON做动态库(linux/windows/qt)
动态库动态库在运行时加载到共享区(堆区和栈区中间的一个特定区域),编译时要加上与位置无关的选项-fPIClinux下动态库的制作准备好cJSON.c cJSON.h文件执行gcc cJSON.c -o cJSON.o -c -fPIC,编译出与位置无关的文件再执行gcc cJSON.o -shared -o libcjson.so 得到动态库so文件-fPIC(或-fpic):表示...原创 2020-03-03 18:23:50 · 798 阅读 · 1 评论 -
C语言库学习(二):用cJSON做静态库(win/linux)
静态库静态库是在编译时链接,windows下后缀为.lib,Linux下为.a,是多个.o文件打包的结果,库的使用是用.h头文件引入符号,先让编译通过,在链接时再组合在一起优点: 执行快 发布程序不需要发布库缺点: 体积较大,库更改需要重新编译应用Linux下静态库的制作.编译成.o文件将.o打包 ar rcs libcalc.a file1.o file2.o file3.o...原创 2020-03-03 10:35:29 · 1520 阅读 · 0 评论 -
C语言库学习(一):cJSON库
学习cJSON库python有着非常好用的库,直接install import就好了,c/c++语言要更复杂一些,用几个常用的库,应该能找到规律,会用c/c++的库下载github上搜索cjson 从第一个拿下cJSON.c cJSON.h两个文件准备工作vi main.cvi makefile准备一个空的.c文件和一个 Makefile文件jsonapp:main.c ...原创 2020-03-02 22:07:59 · 822 阅读 · 0 评论 -
自己封装一个Qt HTTPpost/get的json工具包
XuehuQHTTPJson/**** pro文件中添加 ****QT += networkCONFIG += C++11***********************/Qt有QNetworkReply用于HTTP的异步操作,有QJson用于Json字符串的解析和打包,自己封装一个好用的类,把这两个功能结合在一起,使用很方便。当然发送和接收的都要是application/jso...原创 2020-01-13 23:49:52 · 2073 阅读 · 3 评论 -
运算器的模拟和编程实现-计算机组成原理
1、从键盘输入一个带符号的十进制定点整数( -127 ~+127之间)2、从屏幕上分别显示其原码、补码、移码形式( 8位带符号二进制形式)3、 从键盘输入两个带符号十进制定点整数X和Y ( -127 ~+127之间) ,屏幕上输出[X]原和[Y]和[X*Y]原。代码#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#in...原创 2019-12-11 16:36:57 · 1218 阅读 · 5 评论 -
【数据结构】括号匹配的检验C语言
算法算法:-遇到普通字符忽略遇到左括号入栈遇到右符号 从栈中弹出栈顶符号,比配匹配成功,继续扫描匹配失败,停止,报错结束:所有字符扫描完毕,栈为空:成功匹配失败或扫描完毕,但是栈不为空:失败代码//// Created by xuehu96 on 2019-08-09.//#include <stdio.h>#include "../linkst...原创 2019-08-14 12:07:46 · 1899 阅读 · 0 评论 -
【数据结构】中缀表达式转后缀表达式并计算
中缀转后缀算法对于数字:直接输出对于符号:左括号:进栈运算符号:与栈顶符号优先级比较若栈顶符号优先级低,符号进栈(默认栈顶若是左括号 左括号优先级最低)若栈顶优先级不低,将栈顶符号弹出,之后进栈右括号:将栈顶符号弹出并输出,直到匹配到左括号遍历结束:栈中所有符号弹出并输出计算后缀表达式算法遍历表达式的数字和符号对于数字:进栈对于符号:从栈中弹出右操作数从栈中...原创 2019-08-14 12:01:51 · 536 阅读 · 0 评论