摘要: 我是标题:STM32激光雕刻机(开源免费) (一)首先感谢将离九歌 https://github.com/MaxwellXyao 提供的C8T6/GRBL的源码 (二)本设计开源(免费),请忽倒卖。 (三)设计的STM32激光雕刻机目前只有arduino的20%的效率,以后慢慢完善。使用时候记得带上 阅读全文
posted @ 2018-10-20 21:47 陆小果哥哥 阅读(2768) 评论(0) 推荐(0) 编辑
摘要: (一)感谢:lhzstudio 01_C++经典面试题全集 50~100道 都附带有参考答案 02_C++开发工程师面试题库 100~150道 03_C++笔试题库之编程、问答题 150~200道 04_C++笔试题库之编程、问答题 200~300道 阅读全文
posted @ 2018-10-14 16:52 陆小果哥哥 阅读(175) 评论(0) 推荐(0) 编辑
摘要: (一)冒泡排序法 1 #include <iostream> 2 using namespace std; 3 void bubblesort(int a[], int m); 4 int main(void) 5 { 6 int i; 7 int array[]={5,4,8,44,56,4,5, 阅读全文
posted @ 2018-10-03 10:13 陆小果哥哥 阅读(832) 评论(0) 推荐(0) 编辑
摘要: (一)文章来自:C/C++笔试题-主要考察C/C++语言基础概念、算法及编程,附参考答案 (二)基础概念 2. 头文件中的ifndef/define/endif的作用? 答:防止该头文件被重复引用。 3. #i nclude<file.h>与#i nclude “file.h”的区别?答:前者编译器 阅读全文
posted @ 2018-10-02 10:00 陆小果哥哥 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 013_STM32程序移植之_DS18B20 1. 测试环境:STM32C8T6 2. 测试模块:DS18B20模块 3. 测试接口: 1. DS18B20模块接口: DS18B20引脚 单片机引脚 VCC 5V GND GND DATA PB12 2. 串口使用串口一,波特率9600 单片机引脚 阅读全文
posted @ 2018-09-30 12:22 陆小果哥哥 阅读(456) 评论(0) 推荐(0) 编辑
摘要: (一)首先我们来看非模板程序,函数只是输入不一样的变量就需要构件很多个不一样的函数,那么这样很麻烦,则引入函数模板 1 int& max(int& a, int& b) 2 { 3 return (a < b)? b : a; 4 } 5 6 double& max(double& a, doubl 阅读全文
posted @ 2018-09-26 16:55 陆小果哥哥 阅读(193) 评论(0) 推荐(0) 编辑
摘要: (一)参考原文链接:C++多态 (二) 抽象类 在介绍抽象类之前,我们先介绍一下纯虚函数。 1.纯虚函数 在基类中仅仅给出声明,不对虚函数实现定义,而是在派生类中实现。这个虚函数称为纯虚函数。普通函数如果仅仅给出它的声明而没有实现它的函数体,这是编译不过的。纯虚函数没有函数体。 纯虚函数需要在声明之 阅读全文
posted @ 2018-09-25 15:40 陆小果哥哥 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 多态:一种接口,多种方法(同一种调用方法,根据不同的对象,调用不同类中的函数)静态联编:非虚函数,在编译时确定好动态联编: 1. 对象里有指针,指向虚函数表 2. 通过指针,找到表,调用虚函数 3. 图二 4. virtual来定义为虚函数 (一)首先我们来看静态联编,非多态的程序 1 #inclu 阅读全文
posted @ 2018-09-24 17:44 陆小果哥哥 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 《将博客搬至CSDN》 阅读全文
posted @ 2018-09-24 15:53 陆小果哥哥 阅读(109) 评论(0) 推荐(0) 编辑
摘要: (一)代码 1 #include <iostream> 2 #include <string.h> 3 #include <unistd.h> 4 5 using namespace std; 6 7 class Sofa { 8 public: 9 void watchTV(void) { cou 阅读全文
posted @ 2018-09-24 15:44 陆小果哥哥 阅读(97) 评论(0) 推荐(0) 编辑
摘要: (一)在上一篇012_LINUXC++之_类的继承定义中我们知道在派生类中可以访问public和protectd中的数据 (二)那么我们就可以在派生类中将上面两个中的数据进行权限的修改 (三)程序 1 #include <iostream> 2 using namespace std; 3 clas 阅读全文
posted @ 2018-09-24 15:40 陆小果哥哥 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 34.类成员函数的重载、覆盖和隐藏区别?答案:a.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。b.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同 阅读全文
posted @ 2018-09-23 21:28 陆小果哥哥 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 #include <string.h> 3 #include <unistd.h> 4 5 using namespace std; 6 7 class Father { 8 private: 9 int money; 10 11 protected: 阅读全文
posted @ 2018-09-23 21:20 陆小果哥哥 阅读(170) 评论(0) 推荐(0) 编辑
摘要: (一)访问控制和继承 公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。 保护继承(protected): 当一个类派生自保护基类时,基类的公有和 阅读全文
posted @ 2018-09-23 20:40 陆小果哥哥 阅读(376) 评论(0) 推荐(0) 编辑
摘要: (一)面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。 (二)引入继承程序 1 #include <iostream> 2 #include <string.h> 3 #incl 阅读全文
posted @ 2018-09-23 16:45 陆小果哥哥 阅读(159) 评论(0) 推荐(0) 编辑
摘要: (一)运算符重载:运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 (二)实现类不同对象里中变量的相加 (三)程序 1 #include <iostream> 2 #include <string.h> 3 #include <unistd.h> 4 5 usin 阅读全文
posted @ 2018-09-23 16:28 陆小果哥哥 阅读(271) 评论(0) 推荐(0) 编辑
摘要: (一)定义:友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)。 (二)使用非友元函数将两个对象中的变量进行相加 1 #include <i 阅读全文
posted @ 2018-09-22 17:38 陆小果哥哥 阅读(162) 评论(0) 推荐(0) 编辑
摘要: (一)看程序 1 #include <iostream> 2 #include <string.h> 3 #include <unistd.h> 4 5 using namespace std; 6 7 class Person { 8 private: 9 static int cnt; /*静态 阅读全文
posted @ 2018-09-22 17:11 陆小果哥哥 阅读(544) 评论(0) 推荐(0) 编辑
摘要: (一)分配一个输入子系统结构体 static struct input_dev *buttons_dev; /*分配一个input_dev结构体*/ (二)设置这个输入子系统需要的动作 /* 1. 分配一个input_dev结构体 */ buttons_dev = input_allocate_de 阅读全文
posted @ 2018-09-22 16:24 陆小果哥哥 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 今天是2018/5/29号,已经学习linux差不多一个多月了,但是由于事情比较多。只花了很少的时间去学习。这第一个博文只是现在无聊的时候写的,在之后的博文中会慢慢的更新自己学习的内容来更新博文,现在只学了C,C++,51单片机还有STM32单片机这几个,当然C#和JAVA这两个语言还了解了一下。 阅读全文
posted @ 2018-09-22 15:50 陆小果哥哥 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 012_STM32程序移植之_内部flash开机次数管理lib库建立 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚 CH340引脚 VCC VCC GND GND PA9 RXD PA10 TXD 1. 紧接011,下面进行lib可的移植 2 阅读全文
posted @ 2018-09-22 15:48 陆小果哥哥 阅读(216) 评论(0) 推荐(0) 编辑
摘要: STM32之lib库建立 1. 测试环境:STM32C8T6 2. 测试接口: 3.串口使用串口一,波特率9600 单片机引脚 CH340引脚 VCC VCC GND GND PA9 RXD PA10 TXD 1. 建立lib库原因:LIB 的一个主要用途,就是用在工作上的,当你某些 C 文件不希望 阅读全文
posted @ 2018-09-22 15:47 陆小果哥哥 阅读(772) 评论(0) 推荐(0) 编辑
摘要: 011_STM32程序移植之_内部flash开机次数管理 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚 CH340引脚 VCC VCC GND GND PA9 RXD PA10 TXD 1. 功能: 1. 使用STM32内部falsh进行开机 阅读全文
posted @ 2018-09-22 15:47 陆小果哥哥 阅读(491) 评论(0) 推荐(0) 编辑
摘要: Program Size: Code=28784 RO-data=6480 RW-data=60 ZI-data=3900 的含义 1. Code: 程序所占用的FLASH大小,存储在FLASH. 2. RO-data: Read-only-data,程序定义的常量,存储在FLASH中。 3. RW 阅读全文
posted @ 2018-09-22 15:46 陆小果哥哥 阅读(2510) 评论(0) 推荐(1) 编辑
摘要: flash 模拟 EEPROM 实验 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚 CH340引脚 VCC VCC GND GND PA9 RXD PA10 TXD STM32 本身没有自带 EEPROM,但是 STM32 具有 IAP(在应 阅读全文
posted @ 2018-09-22 15:46 陆小果哥哥 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 1. 测试环境:STM32C8T6 2. 测试模块:SYN6288语音模块 3. 测试接口: SYN6288语音模块: VCC 3.3V GND GND TXD PB11 RXD PB10 BY PB1 2. 串口使用串口一,波特率9600 单片机引脚 CH340引脚 VCC VCC GND GND 阅读全文
posted @ 2018-09-22 15:45 陆小果哥哥 阅读(777) 评论(0) 推荐(0) 编辑
摘要: 1. 测试环境:STM32C8T6 2. 测试:使用DMA进行多通道ADC转换 3. 描述:用 ADC 连续采集 12 路模拟信号,并由 DMA 传输到内存。ADC 配置为扫描 并且连续转换模式,ADC 的时钟配置为 12MHZ。在每次转换结束后,由 DMA 循环将转换的数据传输到内存中。ADC 可 阅读全文
posted @ 2018-09-22 15:45 陆小果哥哥 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 1. 测试环境:STM32C8T6 2. 测试模块:DS1302时钟模块 3. 测试接口: SHTXX土壤温湿度: VCC 3.3V GND GND DATA PA6 SCK PA7 2. 串口使用串口一,波特率9600 单片机引脚 CH340引脚 VCC VCC GND GND PA9 RXD P 阅读全文
posted @ 2018-09-22 15:44 陆小果哥哥 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1. 测试环境:STM32C8T6 2. 测试模块:RC522读卡模块 3. 测试接口: RC522读卡模块: VCC 3.3V GND GND SDA PA4 SCK PA5 MOSI PA7 MISO PA6 RQ 悬空 RST VCC3.3 2. 串口使用串口一,波特率9600 单片机引脚 C 阅读全文
posted @ 2018-09-22 15:44 陆小果哥哥 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 1. 测试环境:STM32C8T6 2. 测试模块:DS1302时钟模块 3. 测试接口: 1. DS1302模块接口: DS1302引脚 单片机引脚 VCC 3.3V GND GND CE PC13 DIO PC14 SCLK PC15 2. 串口使用串口一,波特率9600 单片机引脚 CH340 阅读全文
posted @ 2018-09-22 15:43 陆小果哥哥 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 1. 测试环境:STM32C8T6 2. 测试模块:DHT11温湿度模块 3. 测试接口: 1. DHT11温湿度模块接口: DS1302引脚 单片机引脚 VCC 3.3V GND GND DATA PA5 2. 串口使用串口一,波特率9600 单片机引脚 CH340引脚 VCC VCC GND G 阅读全文
posted @ 2018-09-22 15:43 陆小果哥哥 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 1. 测试环境:STM32C8T6 2. 测试模块:W25Q64FLASH模块 3. 测试接口: 1. W25Q64FLASH模块接口: VCC3.3 VCC3.3 GND GND CS PB12 DO PB14 CLK PB13 DI PB15 2. 串口使用串口一,波特率9600 单片机引脚 C 阅读全文
posted @ 2018-09-22 15:43 陆小果哥哥 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 1. 功能:创建以个等待队列头 2. 函数原型 #define DECLARE_WAIT_QUEUE_HEAD (name) / wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name) #define __WAIT_QUEUE_HEA 阅读全文
posted @ 2018-09-22 15:42 陆小果哥哥 阅读(1645) 评论(0) 推荐(0) 编辑
摘要: linux点灯在汇编版中说明了硬件中点灯的原理,C语言中不再陈述,说白了就是控制GPXCON和GPXDTA寄存器就行了,芯片是S3C2440A芯片,查看芯片手册就能懂了,其他芯片也是一样的。C语言版就只说明了程序,共三个。LED.c是主程序运行的,start.s是汇编启动文件,makefile是编译 阅读全文
posted @ 2018-09-22 15:41 陆小果哥哥 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 1. 开发板采用韦山东的开发板 2. 芯片CPU三星S3C2440A 3. 控制引脚:GPF4 4. linux操作系统 5. 芯片手册下载地址:https://eyun.baidu.com/s/3b1UtLc 看芯片手册三星S3C2440A中GPF4的功能:(280/P) 由下面的芯片手册可以看出 阅读全文
posted @ 2018-09-22 15:40 陆小果哥哥 阅读(1064) 评论(0) 推荐(0) 编辑
摘要: 今天2018/6/1 今天是六一儿童节,天气凉爽,心情挺好的。然后本着开开心心的心情,将前面忘记写linux的Ubuntu没安装的写一下,以后自己回来看就很方便了。使用的是白问网制作的ubuntu,假如失效了去淘宝找韦山东的淘宝店找客服要 下载飞机票:https://eyun.baidu.com/s 阅读全文
posted @ 2018-09-22 15:39 陆小果哥哥 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 开局日常吹牛一小时,今天更新的是linux的基础命令。现在是2018/5/30,晴,心情挺好的。 回归正题,linux基础命令只是一些初学者常用的命令,如果其他更多高级的命令等我学我再发上来,因为这个博文的百度了好像没有上传文档的,所有涉及到的文档自行下载。本人使用的linux教程是韦山东的。文中所 阅读全文
posted @ 2018-09-22 15:39 陆小果哥哥 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 阻塞操作 是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。 被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足。 非阻塞操作 进程在不能进行设备操作时并不挂起,它或者放弃,或者不停地查询,直至可以进行操作为止。 fd = open("...", 阅读全文
posted @ 2018-09-22 15:38 陆小果哥哥 阅读(156) 评论(0) 推荐(0) 编辑
摘要: (一)定义一个timer_list定时器结构体,linux 内核定时器 timer_list详解 (二)初始化定时器,当超时时间expires到之后会调用buttons_timer_function函数 这里我们不设置超时时间,也就是说刚第一次初始化时候会调用buttons_timer_functi 阅读全文
posted @ 2018-09-22 15:38 陆小果哥哥 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 2. 信号量 信号量(semaphore)是用于保护临界区的一种常用方法,只有得到信号量的进程才能执行临界区代码。 当获取不到信号量时,进程进入休眠等待状态。 定义信号量 struct semaphore sem; 初始化信号量 void sema_init (struct semaphore *s 阅读全文
posted @ 2018-09-22 15:37 陆小果哥哥 阅读(217) 评论(0) 推荐(0) 编辑