嵌入式MCU
文章平均质量分 66
autoarts
Roslabor
展开
-
插补速度控制平滑处理控制小总结
插补概念在CNC数控车床中需要控制刀具沿着任意的曲线或者给定系列点走刀,而刀具很难沿着曲线行走,通常的做法是没把曲线量化分割为直线线段圆弧线段两种,这就涉及到直线插补,圆弧插补。所谓“插补”就是指在一条已知的起点O和终点A的曲线上进行数据点的密集化,插补的任务就是跟句给进速度要求,在起点O和终点A之间,计算曲线上的具体坐标值。 clc;clear;pStart = ...原创 2018-08-05 19:56:08 · 3274 阅读 · 1 评论 -
数据结构 顺序列表实现纯代码
顺序列表操作接口函数声明void sequence_list_init(sequence_list_t *sl);void append(sequence_list_t *sl,int dat);void display(sequence_list_t *sl);int size_list(sequence_list_t *sl);int find_list(sequence_lis...原创 2018-08-14 14:32:28 · 268 阅读 · 0 评论 -
数据结构 顺序栈实现 纯代码
顺序栈操作接口函数声明void stack_init(stack_t *st);int empty(stack_t *st);int stack_size(stack_t *st);datatype read(stack_t *st);void push(stack_t *st,datatype dat);datatype pop(stack_t *st);顺序栈数据结构声明...原创 2018-08-14 21:19:28 · 1215 阅读 · 0 评论 -
数据结构 单链表实现 纯代码
单链表操作函数原型声明node_t *list_init();//显示单链表void display(node_t *head);//在单链表上查找第i个节点的存放地址node_t *find(node_t *head,int i);//在单链表上第I个节点后面插入值为x的节点node_t *insert01(node_t *head,datatype x,int i);nod...原创 2018-08-14 20:57:47 · 877 阅读 · 0 评论 -
数据结构 循环队列实现 纯代码
循环队列操作接口函数声明void queue_init(sequence_queue_t *sq);int empty(sequence_queue_t *sq);int queue_size(sequence_queue_t *sq);datatype disply(sequence_queue_t *sq);void get(sequence_queue_t *sq,dataty...原创 2018-08-14 21:19:07 · 3490 阅读 · 0 评论 -
数据结构 双向链表 实现 纯代码
双向链表 操作函数原型声明node_t * init();//显示双向链表内容void display(node_t *head);//在双向链表中查找第I个节点存放的地址node_t *find(node_t *head,int i);//在双向链表中第I个节点后插入值为x的节点node_t *insert(node_t *head,datatype x,int i);//在...原创 2018-08-15 11:02:39 · 355 阅读 · 0 评论 -
数据结构 链式栈实现 纯代码
链式栈操作函数原型声明node_t *init();int empty(node_t *top);datatype read(node_t *top);void display(node_t *top);node_t *push(node_t *top,datatype x);node_t *pop(node_t *top);链式栈数据结构定义typedef int da...原创 2018-08-15 17:08:46 · 607 阅读 · 0 评论 -
数据结构 链式队列 实现 纯代码
链式队列操作函数接口 原型声明queque_t *init(void);int empty(queque_t *qu);void display(queque_t *qu);datatype read(queque_t *qu);queque_t *insert(queque_t *qu,datatype x);queque_t *delet(queque_t *qu);链式队...原创 2018-08-15 18:35:23 · 686 阅读 · 0 评论 -
Dijkstra 迪杰斯特拉 寻找全局路径实现 纯代码
原理参考 https://www.cnblogs.com/chxer/p/4542068.html代码实现#include <stdio.h>#include <string.h>#include <math.h>#define ROWSIZE 10#define COLSIZE 10#define PATHSIZE ROWSIZE+CO...原创 2018-08-20 13:28:32 · 367 阅读 · 0 评论 -
A*算法 寻路径 实现,纯代码
参考 设计到的启发公式f = g + hg: 起始节点start到当前搜索节点current的代价(步数)cost ,是比较确定的一个数值h: 当前搜索节点curret到 终点节点goal的代价(步数)cost ,这是一个大概的估计 不是真的要这么对代价(步数),h计算可以根据 曼哈顿 距离就算 h = abs(currret[x] - goal[x]) + abs(...原创 2018-08-20 14:53:25 · 802 阅读 · 0 评论 -
数据结构 图论中求单源最短路径实现 纯代码
如下有向图 求出单源起点A到所有其他节点的最短路径完整代码:#include <stdio.h>#include <memory.h>//图论的迪杰斯特拉算法#define FINITY 200#define M 20//单源点顶点到其他所有顶点的最短路径typedef int edgetype;typedef int vertextype;...原创 2018-08-21 10:43:05 · 430 阅读 · 0 评论 -
虚拟机Ubuntu下搭建Samba文件访问服务器
主机win10+VMware Workstation+ubuntu14.041.设置VMware Workstation虚拟机网络为桥接联网模式,确保win10与ubuntu14.04相互ping通在Ubuntu14.04下Alt + Ctrl + T键打开一个终端执行命令更新软件源$ sudo apt-get update$ sudo apt-get upgrade安...原创 2018-08-21 15:34:59 · 1602 阅读 · 0 评论 -
C/C++语言函数库 strchar, strrchar, strstr, strrstr 使用及实现
在c/c++中 经常遇到 在一个字符串中查找字符 或者查找子串的情况srtchar,strrchar函数原型声明char *strchr(const char *string,int c)char *strrchr(const char *string,int c)strchar 函数是在字符string 中寻找第一个出现的字符c 并返回位置strchar 函数是在字符st...原创 2018-08-09 14:45:53 · 5265 阅读 · 0 评论 -
printf 在Linux终端上输出彩色字体 (串口也适用)
有时我们希望在LINUX终端上按照调试级别打印不同颜色的调试信息,如 #include <stdio.h>/*#define DBG_PRINT(format, arg...) do { fprintf(stdout,"%ld,%d,[flash_sn]--- "format"\n",\ ...原创 2018-07-20 17:11:47 · 3823 阅读 · 5 评论 -
Win10 VMware Ubuntu14.04安装Mosquitto MQTT服务器搭建
1.介绍 MQTT 是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,因此易于实现。这些特点使得它对很多场景来说都是很好的选择,包括受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT),这些场景要求很小的代码封装或者网络带宽非常昂贵。本协议运行在 TCP/IP,或其它提供了有序、可靠、双向连接的网络连接上。它有以下特点: A:使用发布/...原创 2018-07-07 16:21:17 · 2906 阅读 · 0 评论 -
C++ std::vector 容器
<1>有文件 #include <vector><2>创建vector对象std::vector<int> vec; //模板类型可以是 int double short string struct class map list set vector等<3>数据插入vectorvec.push_back(a);vec.push_ba...原创 2018-05-07 18:43:08 · 362 阅读 · 0 评论 -
Ubuntu下用Python 文件分享服务器HTTP FTP,浏览器为客户端
python 简单HTTP文件分享服务器 1.确保 ubuntu 已经安装了python2.开启终端 执行如下命令python -m SimpleHTTPServer 8000 #端口号可以修改以上这句命令 会启动一个HTTP服务器,如果当前文件夹下有index.html文件,会默认显示该文件,否者会议文件目录的显示显示当前目录下的所有文件3.浏览器访问HTTP服务器,网址输入http://lo...原创 2018-05-16 16:07:44 · 1958 阅读 · 0 评论 -
嵌入式MCU 实现串口类似 控制台命令行交互方式
1.头文件user_uart.h#ifndef USER_UART_H#define USER_UART_H#define UART_CNT(head, tail, size) (((head) - (tail)) & ((size)-1))#define UART_SPACE(head, tail, size) UART_CNT((tail), ((head)+1), (size...原创 2018-05-28 20:28:56 · 2659 阅读 · 0 评论 -
嵌入式MCU C语言实现回调函数设计
1.有这么一个列表维护这所有回调函数的指针 回调函数的注册就是给列表的添加回到函数指针遍历列表逐个调指针 即可实现回调typedef void (*tls_netif_status_event_fn)(u8 status);struct tls_netif_status_event{ struct dl_list list; tls_netif_status_event_fn ...原创 2018-05-31 10:38:28 · 1793 阅读 · 0 评论 -
ROS 使用C++ jsoncpp库 读写保存json.json 文件
我使用的环境之 ubuntu14.04 + ros-indigo1.安装jsoncpp库 终端运行$ sudo apt-get install libjsoncpp-dev libjsoncpp01.1 好用jsoncpp 读取example.json文件内用example.json{ "filename" : "example.json", "string" : "Hello World!"...原创 2018-06-29 11:18:00 · 6442 阅读 · 0 评论 -
g2o使用编程步骤流程
1.整个代码以后围绕着optimizer对象编程。首先实例化一个g2o::SparseOptimizer类的 optimizer优化器,g2o::SparseOptimizer optimizer;SparseOptimizer是一个虚类,继承了OptimizableGraph -> HyperGraph;SparseOptimizer主要成员: protected: bool* ...原创 2018-07-02 11:38:19 · 3133 阅读 · 1 评论 -
Ring_buffer常用工具使用例子
头文件ring_buffer.h#ifndef _RING_BUF_H_ #define _RING_BUF_H_ #include <stdint.h> #include <stdbool.h> #include <stddef.h> #define MAX_SIZE 200/* ring buffer stru...原创 2018-07-18 14:52:26 · 629 阅读 · 1 评论 -
LINUX 多线程C语音编程
1.使用多线程需要包含头文件#include <pthread.h>2.创建线程执行的函数void *func(void *arg)// *arg传参{}3.创建线程#include <pthread.h>int pthread_create(pthread_t * tidp, const pthread_attr_t *attr, void *(*start_rt...原创 2018-07-06 11:48:00 · 255 阅读 · 0 评论 -
Linux 建立一个空的CmakeList.txt 模板工程
前言经常需要在linux建立工程,为了免去每次都重复同样的工作,这里提供一个通用简单的空项目,直接小改动就可以在未来的项目中使用基本 Null_project下的目录结构include 存放头文件的目录include 存放源文件的目录 Null_project目录下的CMakeList.txtCMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #设定版本PROJECT( ...原创 2018-07-13 11:45:23 · 858 阅读 · 0 评论