- 博客(38)
- 收藏
- 关注
原创 【S5PV210_视频编解码项目】裸机开发2:实现PWM波形驱动蜂鸣器
基于芯片自带的PWM定时器模块,实现对PWM波形的控制,掌握pwm定时器的驱动程序开发。
2024-03-17 20:55:07
477
原创 【S5PV210_视频编解码项目】裸机开发:实现按键的外部中断处理
本文所作内容:基于S5PV210芯片实现按键的外部中断处理程序,搭建中断处理流程框架。
2024-03-10 12:30:38
1164
原创 使用Cohda MK5进行DSRC通信开发
DSRC设备开发本文将简要概括DSRC设备—MK5的通信应用开发:即通过MK5实现两台电脑之间的数据通信。属于DSRC基础开发,需要具备基础的车联网知识。MK5简介MK5是一款通过DSRC技术路线实现V2X的产品,其通过不断更新迭代,为用户提供了具备丰富的应用API接口以及配套开发环境的SDK,通过学习SDK中现成的应用程序demo即可进行简单的通信开发。MK5设备使用以及开发流程如下:使用流程(1)远程登录mk5设备1)通过查看设备的产品序列号后六位确定设备的固定IP
2021-04-29 17:46:30
1964
2
原创 Carsim 闪退问题解决
Carsim破解版有时会出现闪退问题有时也会报出如下错误如上 闪退原因多是由于被查到是破解版的缘故 不让用了 解决方案如下:打开电脑注册表编辑器首先打开运行界,然后输入“regedit” 进入注册表编辑器查找carsim的注册表信息编辑器中查找:Mechanical Simulation Corp查找到如下信息此时Mechanical Simulation Corp 左侧会有箭头 点击箭头 依次下面的carsim的版本 然后将右侧的文件删除然后右键点击 Mechanical S
2021-04-21 22:36:15
4682
10
原创 Ubuntu18.04的ROS安装
ROS安装过程安装步骤(1)添加软件源(2)添加密钥(3)安装melodic(4)初始化rosdep1)2)(5)安装rosinstall合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入安装步骤Ubuntu18.04 安装的ROS版本为m
2021-04-14 21:06:33
647
原创 Carsim应用:LKA车道保持辅助系统(LQR控制器模型)
二轮转向汽车LKA控制器算法(LQR)建立控制器模型1)确定Carsim车辆模型的输出参数为:侧向速度、横摆角速度、车辆横纵坐标、目标路径点横纵坐标2)确定Carsim车辆模型的输入参数为:期望方向盘转角3)确定控制器模型的输入变量:侧向速度(m/s)、横摆角速度(rad/s)、侧向偏移量(m)、横摆角偏移量(rad)、期望横摆角速度(rad/s)、路径曲率半径(1/m)4)确定控制器...
2020-04-19 10:21:20
10656
14
原创 Carsim应用:LKA车道保持辅助系统(LQR算法推导)
车辆横向控制主要有两类:一是主动变道,是指根据行驶需要提前打转向灯再进行变道;二是非主动变道,是指驾驶员无意识的情况下出现的车辆偏离原车道的情况。针对非主动变道的就是车道保持系统(LKA)。LKA的工作流程:识别车道线->判断是否介入->进行决策计算->进行执行控制LKA的开发流程:二自由度车辆模型建立...
2020-03-24 17:08:34
10060
2
原创 Simulink基础:基本模块操作4(Saturation Dynamic)
Saturation Dynamic1)运行逻辑为:当输入信号值在上限up与下限lo之间,则输出u;当u大于上限up则输出up;小于下限lo则输出lo。具体示例:其中:UPPER_LIMIT = 1;LOWER_LIMIT = -1;输入信号为初值-2,运行1秒后以斜率1上升的曲线输出:上面为输入信号,下面为输出信号该模块内部结构:...
2020-03-01 11:25:04
9215
原创 Linux网络编程基础:UDP程序实现
UDP通信特点1)没有连接机制2)没有应答机制3)没有滑动窗口机制所以是一种不可靠的通信机制UDP编程模型1)调用socket函数创建套接字文件描述符2)如果要接收数据,那么要调用bind函数绑定自身的ip和端口3)调用sendto函数发送数据(需要使用对方的ip和端口)4)调用recvfrom函数接收数据(需要使用对方的ip和端口)示例:编写A程序,B程序,让两个程序通过U...
2020-02-25 20:44:02
430
原创 Linux网络编程基础:TCP服务器程序实现
编程步骤1)调用Socket函数创建套接字文件2)调用bind函数绑定ip和端口3)调用listen函数将套接字文件转为被动描述符4)调用accept函数监听客户连接5)调用send函数发送数据6)调用recv函数接收数据7)调用shutdown函数结束连接示例:#include <stdio.h>#include <stdlib.h>#include...
2020-02-24 10:54:22
385
原创 Linux网络编程基础:TCP客户端程序实现
步骤1)创建套接字文件描述符,指定使用TCP协议,注意客户端socket函数直接创建的套接字文件直接用于通信2)调用connect函数向服务器发起连接请求,相应的服务器调用accept函数接收连接请求,进行三次握手连接。三次握手的具体过程由TCP协议自动完成,程序员只需要调用connect与accept函数接口即可connect函数函数原型:#include <sys/types....
2020-02-24 10:33:21
310
原创 Linux网络编程基础:close函数与shutdown函数
close函数1)头文件#include <unistd.h>2)函数声明形式int close(int fd);3)用于断开tcp连接4)参数fd对于服务器:指的是accept函数返回的用于通信的通信描述符对于客户端:指的是socket函数返回的套接字文件描述符示例:close(cfd);close函数的缺点1)会一次性把读写都关掉,不能只关写而读开着,也不能...
2020-02-22 17:46:34
542
原创 Linux网络编程基础:recv函数
recv函数1)头文件#include <sys/types.h>#include <sys/socket.h>2)函数声明形式ssize_t recv(int sockfd, void *buf, size_t len, int flags);函数功能1)接收数据2)成功:返回接收数据字节数3)失败:返回-1函数参数sockfd参数通信文件描述符...
2020-02-22 16:09:14
1263
原创 Linux网络编程基础:send函数
send函数1)头文件#include <sys/types.h>#include <sys/socket.h>2)函数原型ssize_t send(int sockfd, const void *buf, size_t len, int flags);函数功能1)TCP协议一般用send函数发送数据函数返回1)成功:返回发送的字节数2)失败:返回-1...
2020-02-22 12:52:30
6886
原创 Linux网络编程基础:accept函数
调用accept函数1)头文件:#include <sys/types.h> #include <sys/socket.h>2)函数声明形式int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);函数功能1)被动监听客户端的三次握手连接请求,三次握手成功即建立连接成功...
2020-02-21 22:31:29
771
原创 Linux网络编程基础:listen函数
listen函数1)头文件#include <sys/types.h> #include <sys/socket.h>2)函数声明形式int listen(int sockfd, int backlog);3)函数功能将套接字文件从主动文件描述符变为被动文件描述符,用于被动监听客户的连接4)函数返回成功返回0,失败返回-1函数参数so...
2020-02-21 20:41:33
631
原创 Linux网络编程基础:bind函数
bind函数1)头文件:#include <sys/types.h>#include <sys/socket.h>2)函数定义形式int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);函数功能及返回值1)将指定了通信协议的套接字文件与自己的IP和端口绑定起来2)成功:返回 0...
2020-02-21 16:59:01
5844
原创 Linux网络编程基础:socket函数
socket函数1)头文件:#include < sys/types.h >#include < sys/socket.h >2)函数定义形式int socket(int domain, int type, int protocol);函数功能1)创建一个套接字文件,然后以文件的形式进行数据通信2)成功:返回套接字文件描述符3)失败:返回 -1函数参数...
2020-02-20 17:13:24
2054
原创 Linux网络编程基础:TCP协议特点与编程模型
通信协议与网络编程接口(API)两者的关系1)网络编程接口是程序员使用网络通信协议的桥梁2)操作系统包含用于使用通信协议的网络编程接口函数3)通过学习调用这些函数,指定不同的函数参数,就可以达到使用不同通信协议的目的4)Linux系统支持很多协议族,其中TCP/IP协议族用的最广,而TCP与UDP协议是属于此协议族的两个不同的子协议使用TCP/IP协议族的三种方式1)TCP路线:应用...
2020-02-20 11:18:21
324
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第七周_03(类模板)
提出问题1)某些类,出元素类型不同,其他完全相同,如何做可以多快好省地定义出一批类?解决方法_类模板1)在定义类时,加上一个或多个类型参数,在使用类模板时指定类型参数的具体参数类型,编译器即可自动生成模板类类的写法:template<class 参数类型1,class 参数类型2, ...>class 类模板名{ 成员函数和成员变量};类成员函数的写法templa...
2020-02-18 16:57:36
286
原创 Simulink基础:基本模块操作3(积分示例与From Workspace 模块)
积分模块示例_求解微分方程1)微分方程:dx1=x2 * t; dx2=x2 * e^(-0.5t);模块建立如下:示波器显示:From Workspace 模块1)用于将 Workspace 中的数据导入到 Simulink 中进行仿真参数对话框:2)模块支持三种导入数据的方式:timeseries, matrix, structure;Data:用于设置变量名为 simi...
2020-02-18 12:17:29
16661
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第七周_02(函数模板)
提出问题1)常常出现函数参数类型不同但函数逻辑完全相同的情况例如交换函数 Swap1:交换两个整型变量void Swap(int& a1, int& a2){ int tmp; tmp = a1; a1 = a2; a2 = tmp;}2:交换两个double型变量void Swap(double& a1, double& a2){ doub...
2020-02-17 21:23:11
280
原创 Simulink基础:基本模块操作2(Gain模块与积分模块)
Gain模块用于将输入乘以内置参数得到输出:1)Gain一栏用于设置模块参数值 k2)Multiplication一栏用于设置运算反式例如数乘运算:选择第一个运算方式例如矩阵运算 ku 选择第二的运算方式例如矩阵运算 uk 选择第三种运算方式第三种运算方式为矩阵乘列向量积分模块 011)External reset:用于状态变量复位设置2)Initial condi...
2020-02-17 12:00:29
44362
3
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第七周_01(输入输出文件操作)
输入输出相关类1)cin对应于标准输入流,用于从键盘读取数据,也可以重定向为从文件中读取数据2)cout对应于标准输出流,用于向屏幕输出数据,也可以重定向为向文件中写入数据3)cerr与clog都对应于标准错误输出流,用于向屏幕输出出错信息例1:输入重定向int main(){ double f; int n; freopen("t.txt","r",stdin); //重定向输...
2020-02-16 18:24:34
1463
原创 Simulink基础:基本模块操作1(Constant,sum,Delay)
Constant模块1)鼠标选中并拉伸四周可以大小放缩2)鼠标选中并键盘输入 CTRL+R 可以进行模块旋转3)鼠标选中并双击,可以进入模块参数配置对话框对话框可以设置常数模块的常数值 Constant value4)鼠标选中模块并点击右键 选中 Properties 进入模块属性配置对话框5)Properties对话框中 Block Annotation 一栏可以添加模块水印6...
2020-02-16 14:57:54
19693
原创 Simulink基础:编程实现自动新建Simulink模型方法
1)命令行代码model=new_system; // 用于新建模型,并将所建立模型句柄赋值给 modelopen_system(model);//打开新建模型2)新建脚本并将上诉代码粘贴至脚本中3)保存脚本4)下次打开Matlab 直接运行上诉脚本即可新建并打开 Simulink 模型...
2020-02-15 11:44:06
1660
原创 Prescan基础:联合Simulink接口的方法步骤
基本步骤1)功能软件搭建:Simulink算法模型2)功能场景搭建:路、轨迹、车、传感器等3)二者联合仿真本文以FCW为例简要概述示例说明1)功能软件搭建好2)功能场景搭建好3)有个场景和模型就可以联合了,首先点击build 再点击 simulink run moled图标,打开Matlab并进入模型界面4)进入主车的模型界面5)将设计好的算法拖入界面并连接好6)运...
2020-02-14 11:11:48
2247
1
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第六周(虚函数和多态)
基本概念虚函数1)在类定义里声明函数中,在函数前加 virtual 关键字,则成此函数为虚函数例如:class CBase{public: virtual int func();};int CBase::func(){}多态1)通过基类指针调用基类和派生类中的同名虚函数时:当指针指向的是基类对象,则调用基类的虚函数;当指针指向派生类对象时,则调用派生类的虚函数2)通过基类引用...
2020-02-13 19:19:50
350
原创 Carsim基础:联合Simulink接口的方法步骤
联合基本思路1)Carsim配置实验工况数据库:车辆参数、道路参数、驾驶员模型、传感器模型以及事件2)Simulink中搭建控制算法3)联合仿真本次重点说明工况都确定的前提下搭建简单的算法并做好两者的接口示例说明 简单的ESP算法1)首先确定了工况如下2)在Simulink中搭建了一个简单的ESP算法模型3)Carsim数据库中新建一个Simulink模型数据库4)进入“S...
2020-02-13 15:04:50
6149
1
原创 全面的MyString
#include <cstdlib>#include <iostream>using namespace std;//int strlen(const char * s)//{// int i = 0;// for (; s[i]; ++i);// return i;//}//void strcpy(char * d, const char * s)//...
2020-02-11 16:30:28
524
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第五周(类的关系)
继承与派生概念1)如果新定义的类B和已有的类A有相似的地方,则可以将类A作为类B的基类,类B是类A的派生类2)派生类是对基类的扩充3)派生类继承基类中所有的成员,包括成员变量和成员函数4)在派生类中的成员函数中不可访问基类的私有成员变量派生类的写法:class 派生类名:public 基类名{}5)派生类的内存空间包括了基类的成员变量和新定义的成员变量例如:class cstu...
2020-02-09 18:16:47
418
原创 动态分配二维数组 C++
动态分配二维数组1)采用指针的指针 T**2)指针的指针指向一片存放指针数组作为行3)指针数组中每一个元素都指向一个元素数组作为列例如:int main(){ int h, l; cin >> h >> l; int **ptr; //定义一个 int** 的指针 //分配空间 ptr = new int*[h]; //使其指向一片有 h 个元素的数...
2020-02-06 17:00:04
422
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第四周(运算符重载)
运算符重载基本概念1)目的是拓展原C程序运算符的作用范围,使程序看起来更加简洁2)本质是函数,可以称之为运算符函数3)可以定义为普通函数,也可定义为成员函数4)把含运算符的表达式转换成函数的调用5)运算符操作数转换为函数的参数6)运算符函数可以重载,调用时根据参数类型选择例如:class complex{public: double real, imag; complex(d...
2020-02-05 17:27:08
530
原创 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead
VS2013 报错错误 3 error C4996: ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. #解决方案...
2020-02-04 11:38:47
389
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第三周
this指针1)非静态成员函数中能直接使用this代表指向该函数作用的对象的指针例如:class complex{public: double real, imag; void print(){ cout << real << ',' << imag << endl; } complex(double r, double i) :...
2020-02-02 21:29:27
572
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第二周(构造函数)
类可访问范围访问范围说明符1)private:用来指定私有成员2)public:用来指定公有成员3)protected:用来指定保护成员4)成员访问范围由离它前面最近的说明符决定5)如果某个成员前没有访问范围说明符,则对于class来言该成员默认为私有成员,对于struct而言该成员默认为公有成员隐藏机制1)类的成员函数内部可以访问:当前对象的全部属性、函数;同类其他对象的全部属性...
2020-02-02 17:03:53
634
原创 C++ 大学MOOC 北大课程(郭炜老师)听课整理 第一周
引用概念1)定义方式:类型名 & 引用名=同类型的变量名例如: int t; int & n = t;则定义了一个类型为int& 的引用 名叫 r 其用变量t初始化 结果就是r引用了t。2)某个变量的引用和这个变量是一回事 就是变量的别名3)定义引用必须初始化 一般用变量进行初始化 也可以用引用初始化引用一旦初始化 其就一直引用这个变量引用只能引用变量...
2020-02-01 18:10:28
1116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人