自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (8)
  • 收藏
  • 关注

原创 嵌入式Linux学习笔记13——输入子系统框架及驱动编程

硬件平台:S3C2440开发板操作系统:Linux一、输入子系统框架二、驱动编程,通过开发板的四个按键实现L、S、ENTER、SHIFT四个按键的功能①结构体定义struct pin_desc{ int irq; char *name; unsigned int pin; unsigned int key_val;};//引脚描述结构体struct pin_desc pins_desc[4] = { {IRQ_EINT0, "S2", S3C2410_GPF0 , KEY_L}

2020-09-16 17:25:25 245

原创 嵌入式Linux学习笔记12——命令行方式启动时main函数中argc和argv的简单用法

int main(int argc, char **argv){ int fd; int val = 1; fd = open("/dev/xyz",O_RDWR); if(fd < 0) { printf("can't open!\n"); } if(argc != 2) { printf("Usage :\n"); printf("%s <on|off>\n", argv[0]); } if(strcmp(argv[1], "on") == 0) {

2020-09-08 08:37:47 754

原创 项目二:基于PID控制算法的管热熔机

基于PID控制算法的管热熔机

2020-09-07 01:12:42 621

原创 项目一:智能恒温箱

智能恒温箱

2020-09-06 23:03:04 1030 2

原创 嵌入式Linux学习笔记11——S3C2440挂载NFS根文件系统时报错及解决办法

环境:虚拟机:Ubuntu 18.04文件系统:fs_mini_mdev.yaffs2uboot:u-boot-1.1.6_jz2440内核:linux-2.6.22.6_jz2440报错:uboot不能够继续加载文件系统,处于卡死状态VFS: Unable to mount root fs via NFS, trying floppy.VFS: Cannot open root device “nfs” or unknown-block(2,0)原因:Ubuntu 17.10 之后

2020-09-06 07:39:02 343

原创 嵌入式Linux学习笔记10——关于Makefile的简单使用

①Makefile简介:在Linux中使用make命令来编译程序,特别是大程序。而make命令所执行的动作依赖于Makefile文件。②Makefile的核心——"规则"③Makefile的基本语法结构:目标:依赖1 依赖2 …[TAB]命令注意:当“目标文件”不存在或者某个依赖文件比目标文件“新”时,则执行“命令”④Makefile的简单语法:1、%.o:通配符,表示 “.o” 类型的文件2、$@:表示 “目标”3、$<: 表示第一个依赖文件4、$^:表示所有依赖文件5、.

2020-08-19 17:33:32 165

原创 51单片机学习笔记(12)——Keil常用快捷键

Keil常用快捷键程序编译说明快捷键运行程序F5代码下载F8创建目标文件F7文件编辑说明快捷键创建新文件Ctrl+N打开文件Ctrl+O保存文件Ctrl+S打印文件Ctrl+P代码文本编辑说明快捷键选中行注释Ctrl+...

2020-05-08 10:59:47 2494

原创 51单片机学习笔记(11)——Keil编译优化选项修改

当我们使用Keil进行debug调试时,程序中有的位置可以设置断点,有的地方不可以设置断点,这是为什么呢?因为 Keil 软件本身具备程序优化的功能,如果想在所有的代码位置都能设置断点,可以在工程选项里把优化等级设置为 0,就是告诉 Keil 不要进行优化。具体优化选项修改方法如下:进入【Options for Target…】选中【C51】选项卡,通过修改Code OptOptimizatio...

2020-05-07 20:58:38 1817

原创 51单片机学习笔记(10)——Keil延时软件仿真

C语言编程常用的有4种延时方法:在某些时候,我们想要知道程序里面的延时函数到底延时多长时间,这时候就可以用Keil软件仿真来实现。①在keil中编写一个简单的延时应用程序:#include "reg52.h"typedef unsigned char u8;typedef unsigned int u16;void delay(u16 time){ while(time--)...

2020-05-07 20:41:49 8588 2

原创 嵌入式Linux学习笔记9——解决undefined reference to `__aeabi_uidivmod'和undefined reference to `__aeabi_uidiv'错误

学习ARM裸机开发的过程中在linux-gcc 4.4.3编译器中进行编译的时候出现了报错报错内容为__aeabi_uidivmod和 __aeabi_uidiv通过查询了解到主要是因为编译器不支持硬件除法运算,缺少libgcc.a静态库等问题。解决方法如下:方法一:1.去对应的目录找到 libgcc.a 文件,输入命令【locate libgcc.a】就可以查找到文件的路径2....

2020-04-19 19:51:54 971 1

原创 51单片机学习笔记(9)——C51的基本数据类型和扩充数据类型

基本数据类型:扩充数据类型:

2020-04-17 11:19:52 748

原创 51单片机学习笔记(8)——74HC573锁存器

①简介74HC573是一种八进制3态非反转透明锁存器。它是高性能硅门COMS器件。②管脚定义和说明OELEGNDVCC1D-8D1Q-8Q使能端锁存控制端地电源数据输入端数据输出端③真值表(L表示低电平,H表示高电平,X表示任意电平,Z表示高阻抗,Q0表示输出端上一次的输出数据)由真值表可以知道,当OE使能端接入低电平时,芯片才有效,若是...

2020-04-17 09:54:30 6572

原创 STM32学习笔记4——位带操作

在51单片机学习中,我们可以通过关键字sbit来对端口的某一位进行操作,比如:sbit LED = P1^0;通过上面的语句我们就可以通过LED这个符号来对P0端口的第0位进行操作,而对P0端口的其他位没有影响。而在STM32中,由于没有sbit这个关键字,就不能通过上述的方法来对端口的位进行操作,通常使用的方法是位带操作法。即将每个比特位膨胀成一个32位字,当访问这些字的时候就达到了访问比...

2020-04-15 22:29:09 846

原创 STM32学习笔记3——stm32系统时钟树

① HSI 是内部高速时钟, RC 振荡器, 频率为 8MHz。 可作为系统时钟或 PLL 锁相环的输入。②HSE 是外部高速时钟。 可通过外接一个频率范围是 4-16MHz 的时钟或者晶振。 HSE 可以作为系统时钟和 PLL 锁相环输入, 还可以经过 128 分频后输入给 RTC。③LSI 是内部低速时钟, RC 振荡器, 频率大约为 40K, 可供独立看门狗和 RTC 使用, 并且独立...

2020-04-15 12:50:23 400

原创 STM32学习笔记2——stm32引脚命名规则

(STM32参考手册截图):

2020-04-14 12:14:09 1417

原创 STM32单片机学习笔记1——GPIO结构解析

GPIO(general purpose intput output) 是通用输入输出端口的简称, 可以通过软件来控制其输入和输出。 STM32 芯片的 GPIO 引脚与外部设备连接起来,可以实现与外部通讯、 控制以及数据采集的功能。结构框图如下:①保护二极管引脚内部加上这两个保护二级管可以防止引脚外部过高或过低的电压输入从而对芯片造成伤害。由于二极管有单向导通的特性,当引脚电压高于 VD...

2020-04-14 11:15:02 1354

原创 51单片机学习笔记(7)——74HC138三八译码器

①简介74HC138芯片是一种三通道输入、八通道输出译码器,主要应用于消费类电子产品。(由于单片机I/O口资源有限,因此我们可以用它来实现I/O口的扩充)②管脚定义和说明③真值表(L:低电平 H:高电平 X:状态未定)E1、E2、E3是芯片使能控制端口,A0、A1、A2是芯片的数据输入端口,Y0-Y7是芯片的数据输出端口。通过真值表可以知道,只有当使能端口E1、E2为低电平(L)...

2020-04-13 21:42:46 17291

原创 嵌入式Linux学习笔记8——解决“arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00000000”问题

在使用arm-linux-gcc工具编译汇编文件的时候,当执行arm-linux-ld操作的时候,系统显示“arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00000000”原因:链接器在做程序链接的时候没有找到 _start 这个符号。(_start 是 arm 汇编程序的入口)解决方法:在 _st...

2020-04-02 19:41:00 5593

原创 嵌入式Linux学习笔记7——Ubuntu18.04安装arm-linux-gcc5.4.0交叉编译工具

①下载arm-linux-gcc-5.4.0(网络搜索或者联系我)②进入超级用户模式,在/usr/local目录下新建arm文件夹,并设定最高权限。之后进入arm文件夹 1. horse@horse-virtual-machine:~$ sudo su 2. root@horse-virtual-machine:/home/horse# cd /usr/local/ 3. root@ho...

2020-04-02 16:09:25 870 2

原创 嵌入式Linux学习笔记6——Ubuntu网络设置wired消失问题的解决方法

某天打开Ubuntu时,发现系统不能够连接网络。进入网络设置,发现以前的wired选项没有了,无法进行网络设置:以下步骤可以解决上述问题:①在Ubuntu终端输入【sudo su】,再输入密码进入root超级用户模式,然后输入【gedit /etc/NetworkManager/NetworkManager.conf】进入文本编辑页面②将【false】改为【true】,然后点击右上方【保...

2020-04-02 11:45:21 6685 2

原创 51单片机学习笔记(6)——三极管介绍

①三极管简介:三极管是一种很常用的控制和驱动器件,常用的三极管根据材料分有硅管和锗管两种,原理相同,压降略有不同,硅管用的较普遍,而锗管应用较少。三极管有 2 种类型,分别是 PNP 型 和 NPN 型,如下图:②三极管基本结构:三极管有三个极,分别为基极(b)、集电极(c)、发射极(e)。在上图中,横向的引脚为基极(b),和箭头连接的引脚为发射极(e),剩下的引脚为集电极(c)。③三极管的...

2020-03-30 20:39:43 6631

原创 51单片机学习笔记(5)——去耦电容的相关知识介绍

①去耦电容的应用背景——电磁干扰EMI现实生活中的电磁干扰种类很多,包括静电放电ESD、快速瞬间群脉冲EFT、浪涌Surge等等。电磁干扰是我们在电路分析和设计中必须要注意的问题,比如一个简单的静电放电,我们用手能够感觉到的静电,可能已经达到3KV以上了,如果能够用眼睛看到,那至少是5KV以上了,虽然电压很高,但是持续的时间非常短,能量很小,因此不会对人体造成伤害。但是对于半导体器件就不一样了,...

2020-03-25 11:17:00 1685

原创 嵌入式Linux学习笔记5——Ubuntu与开发板ping不同的解决方案

连接方式:通过网线将开发板和电脑连接①进入u-boot命令模式,输入命令【set ipaddr 192.168.1.22】设置开发板的IP地址(确保和电脑主机IP地址位于同一网段,即前三位数字相同),再通过【save】保存设置,如下图:②在Ubuntu终端输入【sudo su】进入root超级用户模式,然后输入【gedit /etc/network/interfaces】,按照下图进行编辑:...

2020-03-24 18:30:54 1247

原创 嵌入式Linux学习笔记4——关于jz2440开发板ping不通电脑主机和Ubuntu虚拟机的解决办法

实验环境:jz2440开发板win10Ubuntu虚拟机网络连接:电脑连接路由器wifi,开发板通过网线直连电脑jz2440开发板ping不通电脑主机的解决方案:①关闭电脑防火墙(防止防火墙阻止开发板ping电脑)②按键盘【win】+【R】,输入【cmd】-【确定】进入win10命令行模式,输入【ipconfig】查看电脑主机的IP地址③打开电脑的【控制面板】-【网络和Inter...

2020-03-24 11:04:33 1212 2

原创 嵌入式Linux学习笔记3——VMware虚拟机Ubuntu无法ping通win10主机的解决办法

1、问题:win10可以ping通Ubuntu而Ubuntu不能ping通win10:①在win10界面按键盘上的【win+R】,输入【cmd】,点击【确定】,进入win10的命令行界面②输入ipconfig,查看相关IP地址,得到电脑的IP地址为192.168.2.12③打开虚拟机,进入Ubuntu,使用快捷键【Ctrl+Alt+T】进入终端界面,输入【ifconfig】查看Ubuntu的...

2020-03-19 14:55:23 769 2

原创 嵌入式Linux学习笔记2——虚拟机中Ubuntu无法连接网络的有效解决办法

本方法适用于NAT方式上网(前提:主机已经处于联网状态)首先检查一下VMware的服务是否开启了①点击【我的电脑】,右键选择【管理】,选择【服务和应用程序】-【服务】②找到VMware的相关服务(如下图中的,共5个)③选中VMware相关的服务,【右键】-【属性】 全部设置为自动,然后 【应用】-【确定】④在VMware界面下单击【编辑】-【虚拟网络编辑器】,进入虚拟网络编辑器界面...

2020-03-16 21:50:39 300

原创 嵌入式Linux学习笔记1——vi/vim编辑器区分大小写设置

在vi编辑器中使用查找功能默认情况是区分大小写的,如果希望不区分大小写,则在一般模式下输入(双引号内的内容)“:set ic”,返回默认状态(区分大小写)则在一般模式下输入(双引号内的内容)“:set noic”。具体操作见下图:①当前模式为一般模式。②输入“:set ic”,按下enter键确认,设置为不区分大小写。③输入“/a”查找编辑器中的相同元素,发现a和A都被查找到了,编辑器...

2020-03-15 23:58:41 762

原创 51单片机学习笔记(4)——Keil、uVision、MDK、Keil C51、RealView之间的区别比较

新手入门单片机,一般都是从51单片机开始的,因而也会很熟悉KEIL这个软件开发环境。在开发单片机时,使用的是C语言或者汇编语言,我们知道,这两种语言都不能直接灌到单片机里面,执不执行暂且不说,光是代码的体积,就足以撑破整个单片机。所以,我们需要一个软件,把C语言或者汇编语言编译生成单片机可执行的二进制代码,而且它的体积也非常的小,足够存放在单片机的存储器里面。 KEIL公司(现在是ARM公司的一个...

2020-03-13 15:13:37 1840

原创 51单片机学习笔记(3)——开发软件环境搭建及工程创建

1、开发软件环境搭建编程软件我们用 Keil uVision4 的 51 版本,也叫做 Keil C51。① 首先准备 Keil uVision4 安装源文件(网上资源很多),双击安装文件,弹出安装的欢迎界面,点击【Next】。② 弹出 “License Agreement” 对话框,这里显示的是安装许可协议,需要在 “I agree to all the terms of the pre...

2020-03-12 01:17:03 1418

原创 51单片机学习笔记(2)——51单片机简介

1、单片机内部三大资源Flash——程序存储空间,早期单片机是 OTPROM在早期的单片机中,主要是用 OTPROM(One Time Programmable Read-Only Memory,即一次可编程只读存储器)来存储单片机的程序,程序只能写入一次。随着技术的发展, Flash 以其可重复擦写且容量大成本低的优点成为现在绝大多数单片机的程序存储器。对于单片机来说 Flash 最大的意义...

2020-03-11 17:15:30 5328

原创 51单片机学习笔记(1)——初识单片机

51单片机学习笔记(1)——初识单片机1、什么是单片机单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片机结构框图如下:2、单片机能做什么...

2020-03-11 15:21:46 987

原创 解决Ubuntu下运行shell文件报错 “[:XXXX: unexpected operator”的问题

问题描述:在Ubuntu下运行shell文件,文件中有判断语句[ x == xxxx ]时,运行结果会报错,如下图:程序中写了判断语句[ x == xxxx ]如下图:分析原因:因为Ubuntu默认的shell是连接到dash的,而我们在文件开始的时候是指定文件使用bash,如下图:又因为dash和bash的不兼容所以造成了系统运行.sh文件的时候出错了。解决方法:①输入 su...

2019-10-23 20:32:55 1393

原创 Ubuntu安装vim,提示“Could not get lock......”

#错误描述:在Ubuntu下安装Vim编辑器的时候,出现如下的错误提示:E: Could not get lock /var/lib/dpkg/lock - open…E: Unable to lock the administration directory…#分析原因:在上一次下载资源的时候,由于网络或者其他原因,导致下载失败。由于不正常的关闭下载,导致内部资源被锁住(lock)不可...

2019-10-22 20:29:26 1734

原创 VMware workstation 无法连接到虚拟机

问题:开启VMware,点击启动虚拟机的时候显示 VMware Workstation 无法连接到虚拟机。请确保您有权限运行该程序、访问改程序使用的所有目录以及访问所有临时文件目录。,如下图:解决方法:方法一:①使用快捷方式 win+R,输入services.msc,进入到系统服务界面②找到Vmware Authorization Service,右键 --> 属性 -->...

2019-10-19 14:04:29 49356 20

原创 VMware软件启动虚拟机后不能实现全屏的问题

VMware软件启动虚拟机后不能实现全屏的问题VMware首次开启时会发现Ubuntu虚拟机不能实现全屏显示,如下图所示:VMware首次开启时会发现Ubuntu虚拟机不能实现全屏显示,如下图所示:解决办法:安装VMware tools①首先确保你已经安装了虚拟机镜像文件点击虚拟机 ——> 设置 ——> CD/DVD(SATA)进行查看,如下图:②进入虚拟机,安装VM...

2019-10-18 11:45:17 954

1602液晶显示(Keil+proteus仿真).rar

通过51单片机编程控制1602液晶显示器显示相应的内容,并通过proteus仿真实验的结果。要修改显示内容只需要修改程序中的数组内容就可了,操作方便,容易理解。

2020-04-16

矩阵键盘简易计算器(Keil+proteus仿真).rar

矩阵键盘有数字键、加、减、乘、除、等于、清屏键。通过输入数字和运算符号进行简单计算,按下等于键将计 算的值输出到数码管显示(最大显示8位),计算结果超过8位则输出符号“-”。清屏键用于结束此次运算并清除数码管显示。(计算值-32768~32767)

2020-04-13

矩阵键盘模拟可调密码锁(keil程序+proteus仿真)

矩阵键盘有数字键、设置密码键、确定键、锁定键。初始密码为12345678,键盘输入密码后,按下确定键即可解锁(输入密码期间数字不可见,只有正确输入了密码并确定后才会显示密码数字)。输入密码正确后按锁定键进入锁定状态,数码管不显示。设置密码:按下设置键,输入8位有效数字,按下确定键即可修改密码。

2020-04-09

矩阵键盘中断扫描(Keil程序+Proteus仿真)

采用中断方式对矩阵键盘进行扫描,中断方式可以有效提供cpu工作效率,在有按键动作时才扫描键盘,平时不进行扫描工作。8位数码管动态显示输入的数字类似计算器显示方式。当输入8个数字后,数码管全部显示,此时再按下一个数字键屏幕清零。

2020-04-06

单片机控制8位数码管实现数字滚动显示

单片机控制8位数码管实现数字1-8从右向左滚动显示, 当所有的数字滚动完成(数码管上面没有数字)后, 数字重新从右边第一个数码管开始向左滚动显示。

2020-04-04

流水灯显示自增运算效果(keil程序+proteus仿真)

8个LED灯连接到单片机的8个引脚,通过单片机控制8个引脚从而使LED灯显示8位二进制自增运算的结果。

2020-04-01

独立键盘控制四级变速流水灯.rar

四个独立键盘连接在单片机的四个端口,通过程序检测哪一个按键被按下,流水灯就按照相应的速度进行流水灯显示。

2020-04-01

51单片机控制LED灯实现流水灯灯效果(程序+proteus仿真)

资源包括keil5 C语言程序和proteus软件仿真,仿真实现了51单片机控制LED实现流水灯效果。

2020-03-31

空空如也

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

TA关注的人

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