首页 > 其他分享 >非常完整的开源无刷电机驱动项目+仅1300行代码的C语言异步网络库+简单到傻瓜都会用的日志库

非常完整的开源无刷电机驱动项目+仅1300行代码的C语言异步网络库+简单到傻瓜都会用的日志库

时间:2024-05-11 10:42:46浏览次数:16  
标签:github 1300 主页 项目 无刷电机 C语言 开源 https com

1、VESC - 非常完整的开源无刷电机驱动项目

ESC是 Electric Speed Controller 的缩写,也就是电子调速控制器,简称电调;项目作者是 Benjamin Vedder,所以叫 VESC,就是本杰明电调。这个项目主要分为几个部分,VESC固件,物料清单,VESC硬件,VESC工具软件,是一个非常完整的软硬件项目,并且配套的软件也很出色。

BLDC 是开源的电机控制器源码,适用于直流电机,直流无刷电机调速,支持方波驱动和FOC驱动,比较关键的是支持无感FOC。

硬件部分是基于STM32F4 芯片,开源了直流无刷电机控制器的硬件原理图,感兴趣的话,可以基于这个项目做一下自己的硬件。

项目还配套做了一个基于Qt的直流电机控制器用户界面,用于配置硬件参数,控制和调试控制器。

2、Mongoose - 开源嵌入式HTTP/Websocket/MQTT库

Mongoose 是一个非常小巧易用的网络库。它为 TCP、UDP、HTTP、WebSocket、MQTT 实现了基于事件驱动的非阻塞 API,非常适合在嵌入式系统上使用。

Mongoose 解决了广泛的业务需求,如在设备上实现 Web UI 界面、RESTful API 服务、遥测数据交换、产品远程控制、远程软件更新、远程监控等。

3、dyad.c - 仅1300行代码的C语言异步网络库

dyad.c 是一个基于 C 语言的异步网络库,旨在轻量级、可移植和易用。它既可用于创建小型独立服务器,也可用于为现有的项目提供网络支持。

dyad.c 功能纯粹,API 简洁易使用,对于使用者而言,简直就是开箱即用,前提是你需要的一个简单小巧的 TCP Server。另外,其内部的代码实现优雅且巧妙,非常适合初学者用来学习 Linux 网络编程和了解异步处理的本质。

4、log.c - 简单到傻瓜都会用的日志库

log.c 是一个 C 语言的日志功能模块。其代码简洁,就一个 .c 和 .h 文件,一共 200 行。log.c 设计优雅,打印日志的 API 只有 1 个,并且提供了将 log 输入到不同目标的接口,例如输入到文件,还提供了实现线程安全的接口。

工具类

1、WaveDrom - 在线数字时序图渲染引擎

WaveDrom 是一个免费开源的在线数字时序图渲染引擎。它可以使用 JavaScript, HTML5 和 SVG 来将时序图的 WaveJSON 描述转成 SVG 矢量图形,从而进行显示。WaveDrom 可以嵌入到任何网页中。

在编辑器中输入 WaveJSON 格式的数字时序图描述,即可实时渲染出相应的数字时序图。

标签:github,1300,主页,项目,无刷电机,C语言,开源,https,com
From: https://www.cnblogs.com/lineAI2022/p/18186040

相关文章

  • c语言 数据结构,把数据整体循环左(右)移p个位置
    思路:n为数组的长度(利用线性代数的思路)1.左移:把第1到第p个看成集合A,把第p+1到第n个看成集合B,则需要推导AB->BA,过程(A-1)*(B-1)->( (A-1)*(B-1))-1=BA2.右移:把第1到第n-p个看成集合A,把第n-p+1到第n个看成集合B,则需要推导AB->BA,过程(A-1)*(B-1)->( (A-1)*(B-1))-1 =BA 时......
  • 【C语言】---- sizeof关键字计算变量的大小
    简介sizeof是C语言中一个非常重要的关键字,它用于计算变量、类型和数组的大小。sizeof的作用是获取变量或数据类型在内存中所占用的字节数。在C语言中,所有的数据都有一个确定的大小,这个大小取决于数据类型。例如,一个int类型的数据在大多数系统中占用4个字节,而一个char......
  • c语言 复杂度为O(n)的有序数字字符的去重
     #include<stdio.h>intmain(){//有序列表的去重intarr[]={1,2,2,3,3,3,5,6,7,7,7,7,8,8,9,9,9};intlen=sizeof(arr)/4;intmark[len]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};intk=0;//打印数组printf("原始数组:")......
  • 【C语言】---- 三目运算符
    C语言中的三目运算符是一种简化版的条件语句,它允许您在一行代码中编写ifelse语句。三目运算符的语法如下:condition?expression1:expression2;如果condition为真,则表达式expression1被求值并作为整个表达式的结果;如果condition为假,则表达式expression2被求值并作为整个表达......
  • linuxC语言点灯
    大部分情况下都是使用C语言去编写的。只是在开始部分用汇编来初始化一下C语言环境,比如初始化DDR、设置堆栈指针SP等等,当这些工作都做完以后就可以进入C语言环境,也就是运行C语言代码,一般都是进入main函数。所以我们有两部分文件要做:①、汇编文件汇编文件只是用来完......
  • C语言数据类型篇
    前言写这个系列的文章,其实也是给自己一个交代。之前断断续续的学过C语言,后来发现了很多自己的问题。比如看过的东西过几天就忘记了,有比如要坚持看多少东西后来就坚持不下去了,另外没有一个东西来记录自己对C语言的学习知识点的记录,C语言很重要。是所有语言的母语言,就想在此次学习......
  • 09. C语言内嵌汇编代码
    C语言函数内可以自定义一段汇编代码,在GCC编译器中使用asm或__asm__关键词定义一段汇编代码,并可选添加volatile关键字,表示不要让编译器优化这段汇编代码。内嵌汇编代码格式如下:__asm__(  "汇编代码"  :输出描述  :输入描述  :修改描述);汇编代码部分......
  • C语言函数备忘
    strdup()函数是C语言中的一个标准库函数,它接受一个字符串(字符数组)的指针作为参数,并返回一个指向新分配内存区域的指针,这个新分配的内存区域包含了输入字符串的副本。在内部,strdup()使用malloc()函数来为新字符串分配内存,如果内存分配成功,它会将原字符串的内容复制到新分配的空间中......
  • C语言调用C++的共享库SO
    C语言调用C++的共享库SO今天在项目中,遇到了一个问题,对方提供给我们一个.h的声明文件(使用的是cpp语言),和一个动态库so。但是我们项目中用的是C语言,我们如何来调用so库中的方法呢?我们都知道,C++在设计时,兼容C语言,可以直接调用C语言库中的接口,但是C语言调用C++的接口就会比较困难,比如C......
  • c语言程序设计——实验报告七
    实验项目名称:实验7数组的基本使用实验项目类型:验证性实验日期:2024年4月22日一、实验目的1.熟练掌握数组的定义格式和数组元素的表示方法2.熟悉数组的初始化方法和赋值方法3.掌握字符数组存放字符串的方法和字符串函数的使用4.熟悉数组元素的操作,特别是输入与输出操作5.......