自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 source insight 4 函数无法跳转

软件设置

2023-02-12 14:28:34 1657

原创 KEIL 5 c51 和mdk 共存

keil 5 和c51共存

2023-02-10 12:11:45 1885 1

原创 无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 1870(aptd)持有 的解决问题

安装软件包时会遇到这个问题 一般都是由于我们的为乌版图在进行更新 取消更新就好了

2022-02-28 11:31:07 1401

原创 通信概念扫盲

串口通信并行通信串行通信并行通信是将数据字节的各位通过多条数据线同时进行传输 每一位数据线就需要一条传输线 此外还需要一条信号线 和多条控制信号线 一个字节的数据得需要八条信号线具有传输数据快的 控制简单的特性 但是由于传输线多 长距离收发困难的缺点 现在最多使用的是串行通信串行通信是将数据字节封分成一位一位的形式在一条传输线上逐个传输 只需要一条数据传输线 和一条公共信号线 和若干控制信号线 但是一次只能传输一位 ,一个字节的数据得传送

2022-01-17 22:51:32 1391

原创 32 配置两个串口透传 中断函数配置

本文主要是记录 在中断函数内部怎么进行配置 (基于寄存器编写)void USART1_IRQHandler(void) //串口1中断服务{ if(USART1->SR & (1<<5)) //接收到数据 { USART2->DR = USART1->DR; //向串口2发送 }else if(USART1->SR & 0x40){ //发送一字节完成 USART1->SR &= ~0x40;//清发送完成标志

2021-10-07 23:15:52 3950 2

原创 stm32 printf重定向 无法输出问题

我明明 重定向了fputc 函数 但是无法在串口助手 输出内容最后发现 不只是需要重定向fputc 函数 还需要配置魔术棒需要勾选这个Use Micro LIB然后重新编译 下载进去 串口助手就能正常显示我的数据了...

2021-10-07 23:07:36 954 2

原创 STM32 STLINK的使用以及一些错误的解决方案

"flash download failed - Target dll has been cancelled"错误解决办法1 下载st-link utility并安装,选择Target->Connect会提示下面的错误Can not connect to target!Please select “Connect Under Reset” mode from Target->Settings menu and try again.2 选择Target->Settings,Mode

2021-10-02 15:41:51 5971

原创 STM32 中断时间计算

定时中断发生的时间T:T = (arr+1)*(psc+1)/72MT=1/f 32的tclk已知 我们可以直接用这个tclk 去除我们设定的分频系数(psc+1) 也就是把tclk 分成了(psc+)份 这个分频系数的范围在1~65535 这样得到tclk/(psc+1)也就得到了定时器最终的频率我们在倒过来 得到我们的周期(psc+1)/tclk 在乘上我们的装载值 也就得到我们想要的时间了...

2021-09-08 18:07:24 2328 1

原创 typedef的 一个错误

今晚自己在使用这个typedef 时 犯了一个错误这边定义了*List 在后面定义时 又定义了一个 List *new导致了一个错误 最后百度 才知道当你叫上typedef的时候 Linknode 和 *List 就是代表了那个结构当再次定义变量 new就是一个指向指针的指针了变成一个二级指针...

2021-07-26 22:27:49 267

原创 继电器的使用

本篇文章主要是针对继电器的各个引脚功能进行论述上半部分 直接接到单片机的VCC GND IO口就可以了公共端接电源的正极 常开或者常闭相当于公共端接出来的正极例 当公共端接5v 那常开端也为5v...

2021-06-26 14:01:26 1746 1

原创 ubuntu18.04 的简单配置

上一篇文章教如何安装VM和ubuntu18这次教怎么简单的配置一下这个ubuntu换源 换成国内的源步骤如下1 备份原来的源sudo cp /etc/apt/sources.list /etc/apt/sources_init.list2 换源我选择的是清华源 当然也可以选择其他的源sudo gedit /etc/apt/sources.list使用gedit打开文档,删除原来的所有内容,将下边的清华源复制进去,然后点击保存关闭。清华源deb https://mirrors.t

2021-06-23 23:37:31 291

原创 如何安装ubuntu 18.04

安装ubuntu 步骤安装VM下载ubuntu18.04的镜像文件安装VM 下载下载镜像文件安装镜像文件安装VM下载ubuntu18.04的镜像文件安装VM 下载链接:https://pan.baidu.com/s/1S0jUufmejs5DZN4zec6MAw提取码:1234打开就可以直接使用 选择合适的路径安装即可下载镜像文件链接: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/18.04/下载图中的这两个或者下载

2021-06-23 23:05:53 148

原创 source insight 的破解及使用

破解链接:https://pan.baidu.com/s/1GdAVA0UALHuA0k0rVSaTzQ提取码:1234我们得先把从官网下载好的压缩包 解压 不要点击安装程序 然后把连接里的那个 sourceinsight_4.0.86.0-setup.exe 点击安装一下 安装完成也不需要打开 然后将这个文件夹下的一个sourceinsight4.exe 复制到从官网下载的那个目录下 直接替代就行 然后点击运行 然后把lic 文件弄上去 会出现破解成功的提示 代.

2021-06-06 23:10:34 3489 1

原创 LCD1602

最近学习51 单片机 学到了lcd1602 以此篇文章记录1602的使用我们一般关注这几个引脚3 脚:VL,液晶显示偏压信号,用于调整LCD1602 的显示对比度,一般会外接电位器用以调整偏压信号,注意此脚电压为0时可以得到最强的对比度。 可以外加一个电阻 也可以直接接到低电平4 脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602 进行数据字节的传输操作,而为低电平时,则是进行命令字节的传输操作。命令字节,即是用来对LCD1602 的一些工作方式作设置的字节;数据字节,即使用以在

2021-06-02 21:35:59 1391

原创 51 单片机 定时器与中断的配置

定时器的初始值要怎么设定。由于单片机的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下最大值为100,我们只需要38,怎么办呢,由于是递加的,我们只需要在62时开始计时就可以了定时器的定时时间T = (65536-X),单位是us;定时器初值X = 65536-T;假设定时时间T=10ms=10000us,那定时器初值X=65536-10000=55536us,也就是定时器0从55536开始递加到65536就是10ms,所以55536就是定时器的初值,55536转化为十六进制为0

2021-05-29 15:42:57 1507

原创 51 单片机

这篇文章记录自己在学习过程中遇到的问题1为什么 sbit led =P1^0main 函数中只要led =0 能点亮灯 led =1 就会熄灭我们可以打开库 查看我们的对应的引脚 将这个 十六进制的数转化位2进制可以看到0位位0 为一个低电平12 = 0XFF和P1 = 0X00,才能控制P1所有IO同时变化哇。P1是个8位的寄存器,P1 = 0和P1 = 1相当于只给bit0赋值了,bit1 - bit7一直都是0。...

2021-05-16 14:45:23 125

原创 51单片机 数码管显示

本篇文章记录下自己对51单片机数码管的理解51单片机的操作 个人理解为直接操作寄存器 不像stm 32 那样 可以使用库来进行开发这个是在网上找个一个数码管的代码 我们直接进行分析#include<reg52.h>sbit dula=P2^6;//申明,P2^6是段选sbit wela=P2^7;//申明,P2^7是位选main(){ wela=1; //打开位选 P0=0xfe;//送入位选信号,确定哪几个数码管发光 wela=0;//关闭位选 dula=1

2021-05-15 14:38:47 1392

原创 STM 32 定时器输出 PWM

我们通过TIM3 输出PWM 去驱动 SG90电机配置如下1.GPIO结构体2.配置通用定时器结构体3.配置定时去输出PWM结构体4.打开时钟 —> GPIO时钟,TIM定时器时钟,部分重映射时钟5.配置PWM比较值一 我们使用定时器3 通道2 重映射之后为PB5 GPIO_InitTypeDef GPIO_motorstruct; GPIO_motorstruct.GPIO_Mode =GPIO_Mode_AF_PP; GPIO_motors

2021-05-06 16:47:25 125

原创 变量的存储方式

本文主要是针对static 这个静态存储方式 进行论述局部变量中普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般不对普通局部变量进行初始化,也就是说它的值在初始时是不确定的,除非对其显式赋值。普通局部变量是存储在进程栈空间 使用完立即释放静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。变量在全局数据区分配内存空间;编

2021-04-27 22:53:09 546

原创 C 语言 变量的作用域---------局部变量与全局变量

在了解这个问题之前 我们首先得了解什么是局部变量 全局变量一:什么是局部变量 (有些地方也叫内部变量)定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错int f1(int a){ int b,c; //a,b,c仅在函数f1()内有效 return a+b+c;}int main(){ int m,n; //m,n仅在函数main()内有效 return 0;}这里的

2021-04-27 18:01:26 1269

原创 KEIL5工具栏的设置

由于手贱 导致工具栏 被直接搞成悬浮的了百度了好久 终于是发现一个可以用的办法如果是图片的这种情况 我们点击右键 将状态选择为floating 应该是这个 选择和这个单词形状差不多的就行然后直接按下面的办法 就ok了就是直接点击工具栏 保证它处于可以移动的状态 然后我们能发现 界面上会出现几个小箭头 直接拖到小箭头的位置就可以了亚斯莫拉...

2021-04-26 00:58:53 3882

原创 STM 32 串口中断设置

我们基于之前的串口配置的那篇文章 来完成今天使用串口中断来控制led 灯的亮灭首先我们要知道为什么要使用中断使用中断 能高效的去执行程序,不会一直占用MCU的资源。对于中断的介绍 可以看我之前关于中断的那篇文章开始进入正题我们如何配置串口中断由于之前我们已经在user 这个文件夹下添加过这个文件了所以我们直接在配置串口的那一个文件下 进行配置首先 我们先配置 NVIC_InitTypeDef 这个结构体uint8_t NVIC_IRQChannel; 中断分组uint8_t NVI

2021-04-24 23:02:47 584

原创 stm 32串口的学习

串口的基本配置 (使用固件库)根据这图我们可以知道 stm32 至少会有3个串口由于自己是使用串口一 所以配置的为usart11 时钟使能(用到哪个串口`和GPIO要把相应的时钟开启)2 串口复位;(一般在系统刚开始配置外设的时候,都会先执行复位该外设的操作。)3 GPIO口配置;4 串口参数配置;5 根据需要开启中断下面的代码部分一 时钟使能由于UART的TX和RX和AFIO都挂在APB2桥上,因此采用固件库函数RCC_APB2PeriphClockCmd()进行初始化。UAR

2021-04-24 19:23:53 187

原创 stm 32 串口通信

本篇文章主要是 解决自己对串口通信校验方式的一些疑惑文章主要是对奇偶校验位 进行分析首先我们得对串口数据包的基本组成 有一个大概的了解1.起始位 :由一个逻辑0的数据位表示(第一个低电平)2.结束位 :由 0.5,1,1,5,2个逻辑的数据位表示(高电平)3.有效数据位:紧跟着起始位的就是有效数据位,长度为5,6,7或8位长4.校验位 :可选,目的为数据抗干扰性,校验方式 :奇偶校验需要一位校验位,即使用串口通信的方式2或方式3(8位数据位+1位校验位)。奇校验(odd parity

2021-04-22 22:04:59 235

原创 STM 32 外部中断

什么是外部中断 :外部中断是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去中断的功能 :(1)实时处理功能:在实时控制中,现场的各种参数、信息均随时问和现场而变化。这些外界变量可根据要求随时向CPU发出中断申请.请求CPU及时处珲中断请求,如中断条件(2)故障处理功能:针对难以预料的情况或故障,如掉电、存储出错、运算溢出等,可通过中断系统由故障源向CPU发出中断

2021-04-18 20:30:42 332

原创 STM32练手项目 震动感应灯

这是一个调库的成品编译环境 keil 5 固件库材料:stm32f103C8t6 继电器 震动感应模块usb转TTL usb 灯 一些杜邦线接线剪开usb 灯 里面 有两条线 一条红色一条白色红色 连接到继电器的常开端白线 连接板子的gnd继电器的NI 连接到 板子的A3GND 连接到GNDVCC 连接到板子的3.3v公共端 连接到 3.3v震动模块 vcc 接3.3 或者5vGDN 接GNDDO 连接到板子的

2021-04-18 01:24:23 713

原创 STM32 构建库函数

由于自己的粗心大意 导致构建库函数 这一个简单的事 弄了好几个小时所以我决定把这个配置的过程记录下来我们按照这个逻辑来 就没有啥问题前面构建工程过程 就不多赘述新建文件夹 点击鼠标右键 选择add grup长按 可以修改文件夹的名字然后就是从已经有的固件库中导入文件STRATUP 只需要选择 那个stm32f10x_ hd.s 结尾的配置成这样就可以了然后我们选择编译会发现出现error 但是千万不要慌为什么呢 原因就是 就是我们锤子还没完成配置点击锤子 选

2021-04-17 00:54:09 221

原创 C 语言 位移运算符

左移运算符 <<规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零格式需要移位的数字 << 移位的次数例子3 << 2  首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转.

2021-04-09 10:35:29 329

原创 树莓派 刷入新内核 无法显示ip等一些问题

我们给树莓派刷入我们在ubuntun18下 编译好的内核然后将sd 卡插回树莓派之后 使用ifconfig 想查看网络但是显示的是127 开头的 也就是我们驱动没有安装sudo env PATH=$PATH make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-INSTALL_MOD_PATH= rotofs 的 路径 modules_install当然这个时候我们不需要再次重新编译内核只需要重新挂载sd卡 然后刷入驱动就行挂载U盘

2021-04-05 22:24:32 251

转载 Ubuntu18.04解决网卡失效的问题

Ubuntu18.04解决网卡失效的问题自己在用ubutun18 编写驱动时 编写完成之后 无法使用scp指令将自己写的测试程序 传到树莓派上 研究了 半天 还以为是自己树莓派的问题 对树莓派进行重新刷机 发现不是这个问题之后又重新对vm 进行了网络配置 配置了半天 没成功 最后在看到这位大佬的笔记之后 一下 解决了我的困扰 万分感谢链接如下https://blog.csdn.net/DrunkMozart/article/details/106172583?.

2021-04-05 17:41:39 1338

原创 c语言 结构体

师从上官可编程结构体c语言的结构体作为c语言很重要的一部分 ,使用它的频率也会很高今天自己在学习驱动编写时 看到了结构体的另外一种用法 故记录之下面是结构体的最常规的写法#include <stdio.h>#include <stdlib.h>struct test{ int a; int b; int c; int d;}int main(){ struct test A={1,2,3,4}; printf("a=%d,b=%d

2021-04-02 21:50:24 131

转载 linux 文件系统目录

https://www.runoob.com/linux/linux-system-contents.html常规认知: 根目录,不是分区,和windows不同

2021-03-31 18:31:26 67

原创 Linux 文件系统

师承上官可编程什么是文件系统? 常规认知: 根目录文件系统是操作系统用于明确存储设备组织文件的方法。以上说的方法:就是文件管理系统(程序),简称文件系统 文件系统(文件管理系统的方法)的种类有哪些?FAT VFAT NTFS EXT1/2/3/4 HFS …树莓派查看文件系统的命令: df -Tvfat : boot(bootloader, kernel)ext4 : 根目录tmpfs : 内存文件系统什么是分区?windows: 随意(面向普通用户PC),目

2021-03-31 17:45:03 76

原创 c语言 运算符

i++ 和 ++i 的区别这篇文章主要是解决自己对 i++ 和++i 的认知C语言中++是自增运算符,表示操作数自增1;++书写在变量之后,如: int i=10; i++;2)++书写在变量之前,如: int i=10; ++i;++运算符书写在变量之后和在变量之前有区别吗?有,看应用的场景。1、用于独立的语句中在一个独立的语句中,++书写在变量之后和之前的没有区别。例如: int i=10; i++l; //或 ++i; printf("i=%d\n",

2021-03-30 13:32:17 132

原创 树莓派刷机 和配置方法

我们在使用树莓派的时候 有可能会出现操作不当 需要重新刷入系统自己懒得一直去找方法配置 索性把方法记录下来1 用win32 刷入系统修改系统配置 使用串口登录1.打开SD卡根目录的"config.txt"文件,将以下内容添加在最后并且保存。 dtoverlay=pi3-miniuart-bt22.然后再修改根目录的"cmdline.txt",将里面的内容全部替换成以下内容,以防万一,请先备份好这个文件的原内容。dwc_otg.lpm_enable=0 console=tty1

2021-03-29 19:46:08 583

原创 ## ***树莓派—— 内核开发——下载——替换***

树莓派—— 内核开发——下载——替换由于自己只是使用交叉编译做的 所以该方法只适合使用交叉编译的小伙伴需要准备一个linux交叉编译的主机 比如ubuntu 18获取交叉编译工具链 由于自己是使用学习群下载下来的 所以只需要弄到共享文件夹下 在解压即可交叉编译工具:git clone git@github.com:raspberrypi/tools内核源码下载地址 https://github.com/raspberrypi/ 下载4.14.y版本下面的文件夹都是我自己的命名的文件夹

2021-03-29 19:12:42 177 1

转载 树莓派wiringPi 库详解

树莓派wiringPi 库详解https://www.cnblogs.com/lulipro/p/5992172.html

2021-03-23 23:13:29 104

原创 shell 脚本

shell 脚本 入门linux 的打印命令echo 【选项】 【输出内容例如 echo “hello world”输出为 : hello worldshell 是什么http://c.biancheng.net/view/706.html在编写shell 脚本时 注释使用 #命名 命名时要有意义 尽量不要超过36个 最好是以.sh结尾编写1;要定义脚本的执行环境 ,开头要使用 #! 例如 #!/usr/bin/…2.shell 脚本执行时是没有权限的 需要我们手动添加

2021-03-23 23:06:45 69

空空如也

空空如也

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

TA关注的人

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