自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C51单片机,变量与空间

定义变量

2024-04-23 20:24:09 277

转载 香橙派的wiringOP的安装

香橙派安装wiringOP时遇到的问题

2023-12-09 15:15:29 423

原创 win11的右键菜单改成win10的样子

恢复win11的命令,先记录,我觉得都不会恢复了,觉得win11的很不好用,后悔升级win11了。这步必须执行,否则是成功的,或者可能重启电脑会成功,但是我没有尝试。

2023-10-15 18:56:27 194

原创 舵机控制疑问

现在问题还没有搞懂使用TIME14,比较输出PWM信号控制舵机知道舵机的周期是20ms。开发板是STM32F407的,TIME14的时钟是84MHzTIM14_PWM_Init(20000-1,84-1); //时钟是84M 定时初始化以上初始化就控制不到而初始化为TIM14_PWM_Init(40000-1,42-1); //时钟是84M 定时初始化而这个是可以的...

2021-12-07 22:39:08 2165

原创 树莓派使用图形模式时,键盘的配置

最近买了个新键盘,发现连接上后,在vim打印双引号失败。模糊记得自己以前是修复过这个问题,怎么换了新键盘的不行了于是又上网搜一一边,还是失败。最后在“首选项”里的键盘设置,将Variant改成“English(US)”就成功了之前的设置是“English(US,alt,intl)”...

2021-11-14 14:36:24 346

原创 进程间通信

1、进程间的通信(IPC)方式有管道(无名和命名),消息队列,信号量,共享内存,socket,streams等,其中socket和streams支持不同主机上的进程

2021-07-25 22:35:17 100

原创 进程二:vfork()

1、区别vfork()直接使用父进程存储空间,不拷贝vfork()保证子进程先运行,当子进程调用exit()退出后父进程才执行

2021-07-25 20:04:27 103

原创 进程一:fork()

1、进程的PID每次运行是不一样的2、fork成功后,会返回两次大于0是父进程(即子进程的ID),等0是子进程int main(){ pid_t pid; pid = getpid(); fork();printf(pid = %d, current pid = %d,pid, getpid());}运行结果如下pid = 4231, current pid = 4231pid = 4231, current pid = 4232发现第一次打印是父进程打印的,而第二次打印是子进程打

2021-07-25 18:21:46 209

原创 Linux的文件学习

Linux里的标准输入输出文件符标准输入0 从键盘获取标签输出1 在屏幕显示(shell)错误输出2 在屏幕显示(shell)简答的测试代码如下char readbuff[128];int n_read = read(0,readbuf,128);//从键盘读取输入int n_write = write(1,readbuf,strlen(readbuf);//将读取的信息向shell写入效果...

2021-07-18 13:17:52 128

原创 socket学习:树莓派与虚拟机的通信

程序是之前看学习视频时模式写,隔很长时间没看了,忘记了怎么写现在我直接上结果我主机是台式电脑,使用WiFi适配器连接家里的路由器,IP地址是开启了DHCP,动态分配地址树莓派也是SSH2连接登录的,也是连接路由器,主机与树莓派都同一个网段然后发现虚拟机的网段并不与树莓派在同一网段,结果连接失败百度了一下原因,发现我的虚拟机网络配置是NAT模式,而改成桥接模式下,就变成了同一网段了也许有人改成了桥接模式,虚拟机还是连不上网,这个我以前也试过,以前没有记笔记的习惯,所以一次问题就百度,而这次很幸运,

2021-07-17 23:17:26 803

原创 UCOS学习-信号量

信号量也是资源管理的一种方法信号量相当于一把锁。锁住共享资源,代码需要获取钥匙才能使用共享资源只有任务才能使用信号量,ISR不能使用互斥信号量是解决优先级反转的问题

2021-07-06 19:18:48 109

原创 UCOS学习-资源管理

管理的是共享资源方法有:关闭中断服务、 锁调度器其中锁调度器锁的是任务级调度器,如果有中断,调度器还是会起作用, 因为有一个中断级调度器

2021-07-06 18:29:10 70

原创 UCOS学习-任务挂起

任务挂起:任务进入挂起状态,相当于任务运行所需的条件不满足,任务被暂停,无法继续运行1、有些任务必须等待某些事件发生,若事件还没发生时,任务就会被任务为挂起状态2、挂起状态的任务被放置在挂起列表中以表明任务在等待某个时间的发生,等待的时间,任务不会占用CPU的,事件发生时,该任务会被放到就绪队列中,在这种情况下,正在运行的任务可能会被抢占(正在运行的任务被放回就绪列表),并由系统选择优先级最高的任务去实行,换句话说,如果新的任务优先级最高,那么它就会被立即运行...

2021-07-05 08:40:47 1602

原创 UCOS学习-延时函数

一般的延时函数时让CPU做空操作,而系统自身的延时函数是任务让出CPU控制权,让CPU可做其他任务,被延时的函数就进入就绪态,任何条件都成立了,就差CPU执行

2021-07-04 23:51:12 349

原创 UCOS学习-任务调度器

任务调度器有两种:抢占式和循环轮转调度抢占式:当任务1运行时,任务2就绪,然后任务2的优先级比任务1高,系统通过调度器将CPU的控制权交给任务2,任务1的CPU寄存器状态载入到堆栈中,然后任务2的堆栈的CPU状态载入CPU寄存器,任务1就等待循环轮转调度:当任务的优先级相同时,可以开启系统允许每个任务执行规定的时间,当任务没有完分配给他的时间时,可以自愿放弃如任务1,2,3都是4个时间片,任务1运行了2个时间片,然后调取器就会将CPU控制权交给任务2,执行4个时间片,然后任务3执行4个时间片,接着又

2021-07-04 21:57:11 447

原创 UCOS3学习二-临界区

临界区:1、临界区指的是一个访问公用资源的程序片段,而这些资源又无法同时被多个任务或者线程访问2、如果一个临界区可以被一个中断服务程序ISR和一个任务访问,可以通过禁用中断来实现对于临界区的一个保护3、如果临界区只能被任务访问,那么临界可以通过关闭调度器来保护临界区4、CPU_SR_ALLOC(); //定义所需要的变量OS_CRITICAL_ENTER(); //进入临界区OS_CRITICAL_EXIT(); //退出临界区...

2021-07-03 10:12:09 554

原创 时钟周期,机器周期

时钟周期,或者叫震荡周期,是晶振的震荡周期。如果12M,那么时钟周期就是1/12M,等于1us机器周期,或者叫CPU周期,完成一个基本操作所需要的时间,如访问寄存器,取指令等,一个机器周期包括几个时钟周期指令周期,执行一条指令所需要的时间,CPU从内存取出一条指令并执行指令的时间总和,包括取指令,分析指令,执行指令...

2021-07-02 10:05:34 476

原创 ESP8266学习3-解释心知天气

解释心知天气的cJSON格式数据时,发现在DEV C++解释是没有问题的,当就代码复制到STM32程序里时,总是在某个位置解释失败,后来查资料发现是堆空间不够。更下stm32的堆栈空间就OK

2021-07-02 08:46:34 227

原创 UCOS3学习一

U标签无符号

2021-06-30 14:42:23 95

原创 ESP8266学习2-关于心知天气网的请求

1、ESP8266_SendString(ENABLE, “GET https://api.seniverse.com/v3/weather/now.json?key=S1EB-JUvy4icX5_CO&location=Wuxi&language=en&unit=c\r\n”, 0, Single_ID_0 );按这个方式发送,返回的数据不会有http的一些报文头2、

2021-06-29 22:10:32 212

原创 火焰传感器的简单使用

一、火焰传感器部分数据手册1、工作电压:3.3V-5V2、输出形式:数字开关量输出(0和1)3、引脚:VCC:接电源正极GND:接电源负极D0:TTL开关信号输出二、引脚配置void SW180_Init(void){GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;

2021-06-05 17:37:50 2961

原创 震动传感器的简单使用

一、传感器部分手册内容1、工作电压:3.3V-5V2、输出形式:数字开关输出:(0和1)3、引脚:VCC:接电源正极GND:接电源负极D0:数字量信号输出A0:用词震动传感器此功能无效二、引脚配置void SW180_Init(void){GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin

2021-06-05 17:32:54 1062

原创 ESP8266学习1

在学习ESP8266是,使用了stm32的例程在sta模式下,服务器发送数据时,不能禁用串口中断,直接使用printf函数,打印串口接受缓存就可以

2021-06-01 22:52:15 227

原创 RFID(RC522)项目小结一

在使用钱包功能时,发现扣款,充值命令之一直通信失败后来尝试,将数据块的数据格式变成钱包的规定的数据格式后再进行扣款,充值命令字通信,发现通信成功猜测某些RC522命令字需要规格的数据格式才能正常通信...

2021-04-01 09:51:40 570

原创 解读STM32串口通信例程里的部分函数

1、使用串口1(USART1)来通信2、解读例程的中断服务函数void USART1_IRQHandler(void) //串口1中断响应程序 其名字不能随便定义{ u8 Res; //当串口接收到数据 RXNE将被置1 if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) RESET是0 {

2021-01-10 21:13:30 929

原创 STM32C语言基础

1、预编译的工作?编译“#”号开头的代码。例如#include拷贝头文件代码;#define宏定义替换,#ifndef条件编译2、什么时候需要预编译?不常改动但又常使用的代码;多模块都使用一组标准的包含文件和相同的编译选项,将所有包含文件预编译成一个预编译头3、#与##的区别?#的作用是将宏参数转成一个字符串##的作用是连接两个宏参数4、如何避免头文件被重复包含?使用#ifndef#define。。。。#endif5、static关键字的作用?隐藏作用:可以在不同的文件中定义

2020-12-27 15:42:04 1681

翻译 如何计算img文件的MD5值

MD5的全称是Message-Digest Algorithm 5,它bai一种被du广泛使用的密zhi码散列函数,可以dao产生出一个128位(zhuan16字节)的散列值shu(hash value),用于确保信息传输完整一致。MD5值等同于文件的ID,它的值是唯一的。 如果文件已被修改(例如嵌入式病毒,特洛伊木马等),其MD5值将发生变化。 因此,一些常规下载URL提供文件MD并且通常提供MD5值。 如果用户在下载后发现他们的MD5值与网站公告不一致,可能是文件被修改过或者下载出错下载hasher

2020-12-27 12:24:59 566

原创 交叉编译学习

交叉编译是什么,为什么要交叉编译是什么?=交叉编译 是在一个平台上生成另一个平台上的可执行代码。我们再windows上面编写C51代码,并编译成可执行代码,如xx.hex,是在c51上面运行,不是在windows上面运行 我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out, 是在树莓派上面运行,不是在ubuntu linux上面运行 编译:是在一个平台上生成在该平台上的可执行代码 C51 交叉编译的发生在keil(集成环境上面) stm32 =为什..

2020-12-27 11:14:45 155

原创 为Linux内核开发准备

一、把树莓配的内核安装到VM里的Ubuntu1、在学习群下载了

2020-12-27 11:12:41 98

转载 STM32----STM32的中断优先级理解

STM32的中断有两种属性,一个是抢占,另一个是响应。中断的编号越小,说明他的优先级越高。抢占优先级:打断其他中断的优先级,即执行中断A的服务函数A过程中,被中断B打断,等中断B的服务函数执行完,再继续中断A的服务函数。响应优先级:就是在相同的抢占优先级下,两个中断同时来,先处理响应优先级高的中断服务函数。拿NVIC的寄存器来举例子NVIC可以配置16个中断优先级,使用4位来控制第0 组: 4 位都用来配置响应优先级。即16 种中断向量具有都不相同的响应优先级。第1 组:最高1 位用来配置抢占优

2020-12-26 11:21:54 1900

原创 带wiringPi库的交叉编译

使用ln指令ln 参数 被连接的文件名 连接的文件名(自己创建的名字)ln -s libwiringPi.so.2.50 libwiringPi.so

2020-12-25 23:29:34 178

原创 STM32的GPIO工作模式

库函数GPIO口的解释// GPIO_Mode_AIN 模拟输入// GPIO_Mode_IN_FLOATING输入浮空// GPIO_Mode_IPD 输入下拉// GPIO_Mode_IPU 输入上拉// GPIO_Mode_Out_OD 开漏输出// GPIO_Mode_Out_PP 推挽式输出// GPIO_Mode_AF_OD 开漏复用 输出// GPIO_Mode_AF_PP 推挽式复用 输出...

2020-12-19 19:12:03 106

原创 关于STM32例程中U8,U16,U32的问题

在看STM32例程的时候,发现对u8, u16,u32存在疑问。使用go to definition时发现无法找到然后项目管理栏上,发现stdio.h,stdint.h出现了感叹号警示解决方式,打开微库使用go to definition,还是没有,于是寻找一些头文件,在stm32f10x.h中找到了定义...

2020-12-19 11:41:34 6252

原创 ubuntu拷贝文件到树莓派

一、使用scp指令,失败二、ps -e | grep ssh, 发现只有客户端的ssh,没有服务端的ssh三、安装ssh服务端,sudo apt-get install openssh-server四、安装失败,无法在aliyu的源下载到,于是把源改成华为的。更新一下源 sudo apt-get update五、再次执行sudo apt-get install openssh-server六、开启ssh服务端 sudo service ssh start七、ps -e | grep ssh

2020-12-18 07:35:15 861

原创 关于stm32启动配置

CODE里的启动文件应该与C/C++里启动文件的宏相同md对MDstartup_stm32f10x_cl.s 互联型的器件, STM32F105xx , STM32F107xxstartup_stm32f10x_hd.s 大容量的 STM32F101xx , STM32F102xx , STM32F103xxstartup_stm32f10x_hd_vl.s 大容量的 STM32F100xxstartup_stm32f10x_ld.s 小容量的 STM32F101xx , STM32F102xx

2020-12-13 17:07:49 305

转载 关于STM32工程里的文件解释

https://blog.youkuaiyun.com/makise_kurisu_/article/details/787510981、内核接口文件2、启动文件3、外设驱动文件4、系统文件

2020-12-13 14:30:16 303

转载 STM32各系类安装包

转载一下网址https://blog.youkuaiyun.com/shizes1989/article/details/90754279

2020-12-13 10:37:16 715

原创 安装树莓派交叉编译工具链

1、进入这个网址https://github.com/raspberrypi/在tool里下载2、分为有永久有效与临时有效3、安装vm的tool后,发现/mnt/hgfs/下是空的。可能是VM没有开启共享文件夹。开启共享文件夹方法如下:①关闭ubuntu②在编辑虚拟机设置的选项里。选择总是启用,然后添加共享路径4、把交叉编译工具链从共享文件夹复制到新建的文件夹cp /xxxxx/xxxx 交叉编译工具链名字 .cp指令,最后加一个点表示复制的目标文件复制到当前路径下5、解压文件:unz

2020-12-12 23:52:23 222

原创 关于使用secureCRT通过SSH2登录树莓派时显示连接超时

第一次出现问题的原因:新安装的火绒安全,不小心网络控制开启了,这个网络控制把secureCRT禁止联网了第二次出现问题的原因:原本的光猫再连接了一个华为路由器,而笔记本的wifi连接的是华为路由器,导致树莓派原本设置的网路关不正确。一开始是192.168.1.x,华为的是192.168.10.x...

2020-12-10 23:22:42 655

原创 将树莓派串口改成为通信串口

1、串口通信:数据格式-------语言-----数据位,停止位,奇偶校验位波特率---------语速2、树莓派的串口初始是用来打印信息3、将串口改为通信,步骤如下:、①在shell端:sudo vi/boot/cmdline.txt②将“console=serial0,115200”删除③找到inittab文件 fine -name inittal ,使用vim打开,将最后一行注释掉。如果找不到这个文件,这步骤可忽略...

2020-12-08 23:02:38 244

空空如也

空空如也

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

TA关注的人

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