自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 linux下的PATH环境变量

环境变量是操作系统提供给应用程序访问的简单 key / value字符串;windows/linux/mac都有同样的概念。Linux下path环境变量的值就是通过':'所分割的一系列的路径

2022-10-22 22:58:39 1240 1

原创 stm32构建自己的库函数

void SystemInit()//不让系统报错{ }int main(){ //1、使能GPIOC时钟 寄存器起始地址0x4002 1000 + 偏移地址0x18 *(unsigned int *) 0x40021018 |= 0x01 << 4; //*(unsigned int *)先把十六进制数转化为指针(即一个地址),然后再取这个地址里面的内容,置1然后左移4位 //2、配置GPIOC13为输出模式 寄存器起始地址0x4001 1000 + 偏移地址0x.

2021-12-16 00:09:01 2149

原创 stm32寄存器点灯

一、编写代码。如何点亮D2?1、使能APB2上的GPIOC时钟 由图可看出要打开GPIOC就先要使能APB2(使能:使能是芯片的一个输入引脚,或者电路的一个输入端口,只有该引脚激活,例如置于高电平时,整个模块才能正常工作。你可以想象成手枪或者灭火器的保险拴之类的东西。使能不仅仅是指控制,它是需要符合某种条件后所做出的一种需求反应。如TTL三态输出门电路中使能端也就是控制端.。使能端当为低电平有效时,当使能信号为低电平时,电路实现与非门功能;当为高电平时,电路呈高阻态。使...

2021-12-14 20:17:35 2874 1

原创 【无标题】

-I: 指定头文件所在目录位置。 -c: 只做预处理、编译、汇编。得到 二进制 文件!!! -g: 编译时添加调试语句。 主要支持 gdb 调试。 -Wall: 显示所有警告信息。 -D: 向程序中“动态”注册宏定义。 #define NAME VALUE...

2021-12-06 23:34:44 126

原创 vim的使用

1、vim的三种工作模式命令模式、文本模式、末行模式进入文本模式的各种方式:i进入文本模式,光标前插入字符a进入文本模式,光标后插入字符o进入文本模式,光标所在行的下一行插入I进入文本模式,光标所在行的行首插入A进入文本模式,光标所在行的行末插入字符O进...

2021-12-05 23:07:13 1274

原创 C语言的内存布局

我们先来看一段代码及其运行结果#include <stdio.h>#include <stdlib.h>int global_uninit_var;int global_init_var1=520;int global_init_var2=666;void func(){ ;}int main(){ int local_var1; int local_var2; static int st

2021-12-05 17:29:08 704

原创 动态内存管理

malloc:申请动态内存空间函数原型:void *malloc(size_t size);(返回的void指针可以强转成任意类型指针)malloc函数向系统申请分配size个字节的内存空间,并返回一个指向这块空间的指针。如果函数调用成功,返回一个指向申请的内存空间的指针,由于返回类型是void指针,所以它可以被转乘任何类型数据。如果函数调用失败,返回值NULL。另外size参数设置为0,返回值也可能是NULL,但这并不意味着函数调用失败。#include<stdio.h>#

2021-11-22 01:03:31 529

原创 libcurl等第三方库的通用编译方法,通过调用libcur编程访问百度主页

1、先下载好库​​​​​​https://github.com/curl/curl/releases/tag/curl-7_71_12、把下载好的库发送到Ubuntu上3、新建一个文件夹,并把库的压缩包复制到新建的文件夹里面,再进行解压4、解压完成后,进入解压得到的文件夹5、用翻译阅读一下README6、进入docs,这是对README 的一些补充(curl.1是相关的API手册)7、一定要看的是install如何编译?叫我们去看INSTALL....

2021-11-21 15:06:44 523

原创 生存期和储存类型

一、生存期C语言的变量有两种生存期1、静态存储期具有文件作用域的变量属于静态存储期,函数也属于静态存储期。属于静态存储期的变量在程序执行期间将一直占据存储空间,直到程序关闭才释放。2、自动存储期具有代码块作用域的变量一般情况下属于自动存储期。属于自动存储期的变量在代码块结束时将自动释放存储空间。二、存储类型存储类型其实是指存储变量值的内存类型,C语言中提供了5种不同的存储类型:1、auto2、register#include<stdio.h>.

2021-11-21 01:06:31 262

原创 作用域和链接属性

一、作用域:当变量被定义在程序的不脱那个位置时,它的作用范围是不一样的,这个作用范围就是我们所说的作用域。C语言编译器可以确认4种不同类型的作用域: 1.代码块作用域#include<stdio.h>int main(){ int i=100;//i1 { printf("i2=%d\n",i); int i=111;//i2 ...

2021-11-09 00:56:39 479

原创 source insight的使用

1、在源码当中的文件夹新建一个文件夹2、进入到新建的文件夹si后复制其路径3、打开source insight,新建工程4、把新建的工程名字改成sound,并把复制到的路径粘贴到下面,点击OK5、继续点击OK6、7、继续点击确定,点击close。8、假如没有右侧的小窗,用以下的操作调出9、假如打开的代码中有乱码,可以进行以下设置10、改字体11、同步文件...

2021-11-06 00:23:31 739

原创 设计模式的引入

1、什么是设计模式?设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。(设计模式通常描述了一组相互紧密作用的类与对象)2、什么是类与对象?类(Class):是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类

2021-11-05 17:51:25 111

原创 C语言的局部变量和全局变量

局部变量:​#include<stdio.h>int main(){ int i=333; printf("before i=%d\n",i); for(int i=0;i<10;i++) { printf("i=%d\n",i); } printf("after i=%d\n",i); return 0;}​运行结果:

2021-11-05 01:08:25 1103

原创 配置、编译Linux内核适合树莓派相关操作及Linux内核镜像拷贝至树莓派并启动新内核

为什么要进行树莓派Linux源码配置? 当我们工作中要进行驱动代码的编写,编写完以后要进行编译,要进行驱动代码的编译就必须要一个提前编译好的内核,编译内核就必须要先配置。 配置的最终目标会生成 .config文件,该文件指导Makefile去把有用东西组织成内核。 厂家配linux内核源码,比如说买了树莓派,树莓派linux内核源码:使用源码里自带的config第一种方式: cp 厂...

2021-10-26 22:32:43 322

原创 带WiringPi库的交叉编译处理

1.我们先把一个在树莓派下写的代码发到ubuntu:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<wiringPi.h>#define SWI 26int main(){ if(wiringPiSetup() == -1) { printf("硬件接口初始化失败\n");

2021-10-24 22:07:52 476

原创 树莓派和电脑之间串口通信编程

#include<wiringPi.h>#include<wiringSerial.h>int main(){ int fd; wiringPiSetup(); fd = serialOpen("/dev/ttyAMA0",9600); while(1) { serialPutchar(fd,'a'); delayMicroseconds(1000000); } return 0;}运行结果:

2021-10-24 17:49:06 1325

原创 树莓派外设开发编程

树莓派外设开发接口文档参考WiringPi库(Linux动态库:so 静态库:.a)https://www.cnblogs.com/lulipro/p/5。992172.html1.树莓派的接口: 驱动IO口:input output 对主控来说Input:人体,烟雾,火焰,震动等Output:继电器,蜂鸣器PWM:电机调速,灯光调明亮度串口uartIIC...

2021-10-23 21:04:35 113

原创 项目:基于wemos的WiFi避障小车

一、项目介绍:通过wemos D1控制小车的行进轨迹及避障功能。二、项目原理:该模块主要实现避障的功能,超声波发出波遇到前面的障碍物后会返回,通过这段时间来判断距离前面障碍物的距离,距离通过串口传给wemos d1从而判断碰到障碍物该做什么反应。三、开发及硬件组成:Arduino、wemos D1、小车、步进电机驱动、超声波测距模块。...

2021-10-21 23:59:48 240

原创 树莓派的开发

一、树莓派刷机1.SD卡、读卡器、https://pan.baidu.com/s/1Z0mtOJazWQa5TmfO8IxaYw提取码:tih8 、2.把SD卡插到读卡器中,读卡器插到电脑,打开Win32DiskImager,打开准备好的固件包链接:https://pan.baidu.com/s/1errfdscFduEU3NdZ4MxpNg提取码:tabj:点write,继续点yes。此处写入失败可能的原因:解决此问题请参考:https://blog.csdn.net/qq_3922...

2021-10-18 18:34:54 543

原创 Ubuntu 安装配置SSH(ssh: connect to host localhost port 22: Connection refused问题的解决)

想在树莓派和ubuntu互发文件中却出现了以下情况: Ubuntu默认并没有安装ssh服务,如果通过ssh链接Ubuntu,需要自己手动安装openssh-server。判断是否安装ssh服务,可以通过如下命令进行:sshlocalhost问题分析如下:出现这个问题是因为Ubuntu默认没有安装openssh-server,我们用一个命令来看下,如果只有agent,说明没有安装openssh-server,命令如下:ps-e|grepssh我们就开始用命令来安装openss...

2021-10-13 13:25:55 2664

原创 树莓派Linux源码目录树分析

大约1.3w个C文件 1100w行代码 Linux内核是开源,免费的代码,由LInux开源社区工作者共同维护 Linux是一个开源的,支持多架构多平台代码 可以执行非常高 但是Linux内核编译出来一般就几M. 4M 因为支持多平台,多架构,所以编译之前要配置,配置成适合的目标平台来用 ARM 海思 友善之臂 R...

2021-10-12 20:26:25 125

原创 ubuntu安装好后基础软件的安装

vi工具的安装:在终端直接输入sudo apt-get install vimgcc的安装:1.首先更新包列表sudo apt update2.在终端直接输入sudo apt install build-essential安装ifconfig:sudo apt install net-tools

2021-10-11 21:24:53 116

原创 交叉编译相关

树莓派交叉编译工具链的安装:Raspberry Pi · GitHub把下载好的压缩包移动到window与Linux的共享文件夹;再从Linux的共享文件(share)夹拷贝到工作目录home/lessonPI:cp /mnt/hgfs/share/tools-master.zip .解压:unzip tools-master.zipcd /home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabih.

2021-10-10 21:09:21 81

git学习.zip

git学习.zip

2023-06-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除