- 博客(45)
- 收藏
- 关注
原创 SecureCRT--在U-Boot下擦除U-Boot
SecureCRT:SecureCRT is a commercial SSH and Telnet client andterminal emulator by VanDyke Software. Originally a Windows product,VanDyke added a Mac OS X version[1] and Linux version.在U-Boot下如何擦除U-Boot:使用movi命令可查出U-Boot,如下图所示如果不会使用movi命令,也可以使用help .
2021-02-04 11:54:49
425
原创 单片机C语言延时程序
单片机C语言延时程序用C语言写出来程序非常的简练,它是一种模块化的语言,一种比汇编更高级的语言,但是就是这样一种语言也还是有它不足之处:它的延时很不好控制,我们常常很难知道一段延时程序它的精确延时到底是多少,这和汇编延时程序没法比。但有时后写程序又不得不要用到比较精确的延时,虽然说可以用混合编程的方式解决,但这种方式不是每个人都能掌握,且写起来也麻烦。所以,通过测试我给大家提供一个延时子程序模块,并以此给一个出我们经常用到的延时的数据表格。(注意:表格中的数据只适合我的延时模块,对其他的延时程序不适用,切忌
2021-01-15 00:15:53
2564
1
原创 Candence Allegro Drc文件检查结果翻译
Date and Time : 01/11/21 20:50:32--------------------------------------------------Checking Schematic: Airplane //检查的原理图项目名称--------------------------------------------------Checking Electrical Rules //检查电气规则Checking For Single Node Nets
2021-01-11 22:16:04
3347
1
原创 Cadence Allgero进入软件后点击按钮,菜单会慢慢显示清晰的问题
具体的安装和破解请自行百度吴川斌的博客。遇到的问题:1-打开原理图绘制软件Capture CIS后,发现点击菜单栏的按钮,菜单会慢慢展开,并且字体慢慢变清晰,总之就是感觉显示很慢。解决方法:不要直接打开软件,应该选中软件,然后右键用图形处理器运行,并选择高性能英伟达处理器来进行打开,这样打开软件点击菜单按钮,就会立刻清晰显示你点击的界面!...
2021-01-10 17:17:45
390
原创 C语言基础--拨开main函数的神秘面纱,深入解析main函数
写在前面:无论是C语言初学者还是已经工作了很多年的朋友,main函数天天都在用,但是我们有没有思考过main函数的各种特性呢?从第一节C语言课,就讲到了下面的这个例子:#include <stdio.h>int main(){ printf("Hello World!\n"); return 0;}这里用到了printf函数,这个函数式放在IO库里面的,所以要包含IO的头文件,这个我相信大家都知道。那这里我们有没有想过,下面为什么要加个return 0 呢?加个retur
2020-12-06 21:55:53
236
原创 C语言基础--深入理解指针常量和常量指针的前世今生
本文将要讲到的是关于指针常量和常量指针!平时我们会经常 见到以下几种类型: * 1)const int a; * int const a; * * 2)const int *p; * int const *p; // * * 3)int *const p; * * * 4)const int *const p; 上面代码中的1234对应的概念1)用const修饰一个变量,意思是将这个变量常量化2)常量指针:表示指针的
2020-12-05 11:52:19
156
原创 C语言基础--用实例深入理解数组指针
38 //数组指针example 1 39 int a[2][3] = {1,2,3,4,5,6}; 40 int i,j; 41 int *p = *a; 42 int (*q)[3] = a; //此处a和q的根本区别就是a一个常量,q是一个整形指针, 43 44 printf("%p %p \n",a,a+1); 45 printf("%p %p \n",q,q+1); 46 for(i .
2020-12-04 16:21:10
106
原创 C语言基础--深入理解二维数组的行指针和列指针(对于警告从不兼容的指针类型赋值的根本原因和解决方法)
首先上一段代码:1 #include <stdio.h> 2 #include <stdlib.h> 3 4 5 //套公式: TYPE NAME = VALUE 6 int main() 7 { 8 int a[2][3] = {1,2,3,4,5,6}; 9 int i,j; 13 printf("%p %p\n",a,a+1); 14 for(i = 0;i < 2;i++) 15
2020-12-04 14:43:27
994
原创 arm基础篇1-samsungx210开发板破坏BootLoader并刷机
准备工作:软件:secureCRT串行口监视软件硬件:samsungx210开发板,串口转usb线,micro usb数据线一根开始刷机:1,先破坏,BootLoader,开发板启动起来之后进入系统控制台,执行以下代码:busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=syncsync //为了确保数据有效,再次执行sync来同步一下2,插入USB数据线,启动开发板,启动开发板的时候从串口监视软
2020-10-02 23:58:35
303
原创 Ubuntu下访问windows的共享文件遇到的问题以及解决办法(ubuntu版本20.04)
前提:今天ubutnu下面与windos共享的文件夹相互传文件时发现共享文件夹有如下症状:1)使用命令vmware-hgfsclient能看到我有个共享文件夹2)从共享文件夹的目录进入的时候,使用cd /mnt/hgfs/然后使用ls查看目录信息,此时下面的文件夹都是空的,不显示任何文件。使用 ls -a只能看到几个省略号,其余的啥都没有。问题排除,在网上找了好多文章,结果都没啥用,我的vmVare tools这些都是装好了的。使用命令sudo su - root进入超级用户,继续重复之前的操作也
2020-10-02 16:19:44
3334
原创 KEIL软件错误问题汇总
(1)错误提示:MAIN.C(46): warning C206: ‘Init_Uart’: missing function-prototype解决:该函数未声明,声明一下即可解决
2020-08-16 22:34:05
780
原创 C语言基础-逆序问题的奥秘
C语言逆序问题,输入一个正整数,将其逆序输出。思路:第一步:将输入的number取余,例如输入number=24,则number取余得4,这个时候立即将4输出,显示在屏幕上,为了要形成连续的逆序显示效果,所以这里的打印输出不要用换行符。第二步:再次打印结果number/10的值,这时24/10=2,则再次打印这个2在屏幕上面由上面的第一步第二步的打印,就可以看到42被打印出来了,其秘诀就是先后打印,然后再组成一个值的效果。这样我们就能看到值反过来了。#if 1//example 4.9:Reve
2020-06-20 00:05:27
466
原创 普中HC6800V2.2开发板思考记录-步进电机(如何让步进电机旋转一定角度,如何让步进电机以一整圈的方式来旋转)
步进电机,这玩意和直流电机还不一样,并不是通电了就会转,而是要给他一个节拍才可以转。关于步进电机,百度百科是这样说的步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。因此,步进电动机又称脉冲电动机由于步进电机在旋转的时候看效果不太清楚,所以我给上面用热熔胶粘了一个扇叶。我使用的电机是双相步进电机,那什么是双相步进电机什么是单相步进电机呢?请看下面:本次DEMO我们要让其
2020-05-10 14:38:21
1618
1
原创 普中HC6800V2.2开发板思考记录-一位静态数码管显示与切换
先看看原理图:对于数码管,一定要先明确这是共阴还是共阳的数码管,如图所示,这是共阳数码管,如果拿到一个新的数码管,不知道他是什么类型的,有两种方法:A 直接在万能的淘宝上面搜索型号B 用万用表测试,具体的测试方法在这里不细说,可自行百度现在再来看看,现在我要让这个数码管显示0,我们只需要让数码管的abcdef给高电平就可以了,其他数字和小写字母的显示也是这个方法。那如何用程序显示呢?...
2020-05-03 21:15:22
892
1
原创 普中HC6800V2.2开发板思考记录-继电器概念、原理、使用方法
一,继电器当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导通或断开的电器。可分为电气量(如电流、电压、频率、功率等)继电器及非电气量(如温度、压力、速度等)继电器两大类。具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于...
2020-05-03 17:45:33
1339
原创 普中HC6800V2.2开发板思考记录-蜂鸣器(谱曲软件自动生成代码,烧录就可用,内含醉酒的蝴蝶,大海,把悲伤留给自己这三首歌)
对于51单片机,用蜂鸣器来实现一些音乐,如果自己一个音节一个音节去谱曲的话,就会非常麻烦,在里用自动谱曲软件就可以了。谱曲软件我会上传,各位自己搜索就能找打...
2020-05-03 17:24:51
1531
2
原创 普中HC6800V2.2开发板思考记录-按键控制LED灯左移和右移
在这个demo中,编程的思路是:主函数一直查询按键是否被按下,如果按键被按下,则在对应的按键中给keyNum赋值,然后回到主函数中根据keyNum的值来判断LED灯是左移还是右移。看看代码://--包含你要使用的头文件--//#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器#include <intrins.h>//--定义...
2020-05-03 16:14:57
1065
原创 普中HC6800V2.2开发板思考记录-按键选择花样显示
本次demo完成的效果:8个独立按键,每个按键按下都会对应一种亮灯效果。//--包含你要使用的头文件--//#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器#include <intrins.h>//--定义要使用的IO口--//#define GPIO_KEY P1 //独立键盘用P1口#define GPIO_...
2020-05-03 15:39:21
527
原创 普中HC6800V2.2开发板思考记录-LED显示按键键值
这个demo的思路:通过按键方式查询P1口有那个按键按下,然后根绝这个按键的键值,赋给他对应的LED的值,就能实现LED显示按键键值的效果。老规矩,看看代码://--包含你要使用的头文件--//#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器#include <intrins.h>//--定义要使用的IO口--//#def...
2020-05-03 12:55:38
450
原创 普中HC6800V2.2开发板思考记录-独立按键控制8个LED灯亮灭
现在来到了按键,对于独立按键,主要就是要有一个消抖,为什么需要消抖?因为在按键按下去的时候,是有高低变化的杂波的,如果不消抖,就会反复触发按键功能。。一起来看看硬件电路:我们可以通过IO来连接接线排插,让其通过按键与GND连接,这样就能通过IO判断在一段时间内是否是低电平从而判断按键是否真的按下。来看看程序:/***************************************...
2020-05-02 23:07:55
1735
1
原创 普中HC6800V2.2开发板思考记录-左右流水灯
来一起看看左右跑马灯的程序,这种亮灯效果在一些大桥的霓虹灯上能看到void main(){ unsigned char i; //--首先赋值LED--// LED = 0xFE; while (1) { //--LED往左闪烁--// for (i = 0 ;i < 7 ; i++) { //--将LED 的值赋给P0口--/...
2020-05-02 22:21:30
459
原创 普中HC6800V2.2开发板思考记录-跑马灯
51单片机中的跑马灯程序,也是同行们很熟悉的一种效果了,由于复习到了,所以在这里也记录一下,各位同行们见笑了~看下代码:void main(void){ unsigned char LED; LED = 0xFE; while(1) { P0 = LED; Delay10ms(50); LED = _crol_(LED,1); //循环右移1位,点亮下一个LED 此...
2020-05-02 22:07:39
388
原创 普中HC6800V2.2开发板思考记录-流水灯
流水灯是各位电子信息专业的再也熟悉不过的程序了,因为现在复习到了这块板子,所以在这里也是记录一下下面的程序就能完成流水的效果,如下面示例:main(){ unsigned char LED; LED = ~0xfe; //0xfe = 1111 1110 while (1) { P0 = LED; Delay10ms(5); LED = LED &l...
2020-05-02 21:52:02
657
原创 普中HC6800V2.2开发板思考记录-头文件中的预处理
下面所示的代码是为了防止文件被多重包含!#ifndef __INTRINS_H__#define __INTRINS_H__extern void _nop_ (void);extern bit _testbit_ (bit);extern unsigned char _cror_ (unsigned char, unsigned ...
2020-05-02 21:22:58
159
原创 普中HC6800V2.2开发板思考记录-LED灯实现二进制加减法的效果
1,硬件电路,从下图可见,LED灯是高电平有效所以在keil中直接给到IO口高低电平就可以使LED亮灭,这里我们实现以下void main(){ unsigned char Num = 0x02; while (1) { P0 = Num; Delay10ms(500); //延时函数 Num--; } }可见,我们最初给Num...
2020-05-02 17:09:55
591
原创 C语言指针变量详细操作过程分析
1,指针变量#include<stdio.h>int main(void){ int i, * p; i = 1; p = &i; printf("%d", *p);}所谓指针变量也就是存放地址的变量如上代码段所示,定义一个指针变量p,注意使用了指针声明符号*,此时再使用取地址符号&取出整型变量i的地址,并且把这个地址赋给了p,下面再打印出p变量...
2020-03-29 17:32:54
311
1
原创 C语言中for双重循环实现过程(详细)
#include<stdio.h> int main(void){ int i, j; int a[3][2]; /*给二维数组赋值*/ for (i = 0; i < 3; i++) { for (j = 0; j < 2; j++) a[i][j] = i + j; } /*按照矩阵的形式输出*/ for (i = 0; i < ...
2020-03-29 16:13:26
18126
原创 51单片机从入门到精通笔记(复习版本)----第一部分
迫于本次寒假新型冠状病毒的压力,暂时只能在家,出门的路都被封了,所以顺便复习一下51单片机的知识。程序语言用的是C语言,后期可能推出汇编部分。1,LED在51单片机中,操作LED基本上是大家的第一个上手的实验,下面分享一些例程1)#include<reg51.h>void main(void){P0=0xFE /假设端口低电平有效,此时可以点亮P0.0那个LED}...
2020-01-31 20:39:10
2125
2
原创 C语言中格式化类型定义
C语言中的细节:%d 表示有符号十进制整数, %c 表示字符。这一类符号是“格式说明”用于格式输入与格式输出,就是我们常见的printf和scanf函数中在输入输出时,对不同类型的数据(如int,float,char等)要使用不同的格式说明:其中%d,用来输出十进制整数%f,用来输出实数(包括单,双精度),以小数形式输出%c,用来输出一个字符%s,用来输出一个字符串...
2020-01-19 22:42:15
603
原创 C语言进阶3-指针第二部分
野指针,就是指针指向了一块不确定的地方,或者虽然指向了一块确定的地方,但是引用空间的结果却是不可预知的,这就是野指针比如int maint(void){int *p;*p=10; //这里的指针要指向的地址是不确定的,所以就是野指针return 0; }野指针可能引发段错误,或者引发程序连环式错误,导致野指针有以下几种可能性:1)指针指向了一块不确定的地方2)指针...
2019-11-06 12:02:28
120
原创 普中PZ6806L用定时器TIM2完成一秒LED闪烁一次
本次试验用到的东西有:1)TIM2通用定时器2)普中PZ6806L开发板,LED1硬件连接:1)TIM2挂载在APB1下面2)LED1-PC0,低电平有效步骤:1)先打开系统时钟2)配置中NVIC3)配置GPIO关于TIM定时器的配置typedef struct{ uint16_t TIM_Prescaler; /*!< Specifies the...
2019-11-06 10:43:19
1033
原创 用SYSTICK完成的精确延时例程-实现微秒和毫秒级延时
强调一下中断和延时的区别,中断,在延时的时候可以做别的事情延时,阻塞式的,进程阻塞在这里了,就只管等待时间到了往下继续做事情/** ****************************************************************************** * *延时函数:微秒级 * *用这个函数要成立有两个条件: *条件一:主频要是72M ...
2019-10-30 13:45:32
1554
原创 野火SYSTICK系统定时器的定时方法
以前定时的时候就是直接根据装载值VALUE(LOAD)=T(定时时间)*CLK(AHB)来进行计算的,今天在看例程的时候发现野火用了另外一个办法、SYSTICK定时器定时时间的计算当设置好中断时间T后,我们可以设置一个变量t,用来记录记入中断的次数,那么用变量t乘以中垄断的时间T,就可以算出需要定时的时间除了上面的办法,这里还有一个办法:请注意下图中的第16位,装载值减为0的时候会自动置...
2019-10-30 10:46:43
1134
1
转载 C语言基础2-预编译命令
#ifdef和#ifndef,这是条件编译的宏定义。一般程序在调试过程的编译跟正式发行的时候是不一样的,调试过程中可能有很多测试语句是用户不需要的,但是如果一行行删掉或者注释掉又很麻烦,并且如果发行之后又需要修改BUG又要用到之前的测试,重写也是很麻烦的。于是可以考虑用条件编译。首先可以写一个宏定义来表示是否按调试模式编译#define DEBUG然后需要写测试语句的时候都这样写#ifd...
2019-10-17 14:34:46
270
原创 C语言基础1-宏定义命令
宏定义宏定义编译指令是指以“#”开头,使用“define”作为宏定义的指令。宏定义是用一个标志符号来代替另外一个标志符号。宏定义的两种形式:1)变量式的宏定义:变量式的宏定义的书写类似于变量的生命,用来定义常量。#define Pi 3.1415926在宏展开后,所有的标志符号Pi都用3.1415926来代替。#include <stdio.h>#define PI ...
2019-10-16 08:38:40
1575
原创 C语言进阶3-指针第二部分
在这里将会讨论const修饰指针的常见三种形式, const关键字在C语言中修饰变量,表示这个变量是常量,指针变量也是变量1)第一种:int const *p等价于 const int *p 此时p本身不是const的,但是p指向的变量是const类型的2)第二种:int * const p; 此时表示 p本身是const ,但是p指向的变量不是const类型的2)第三种: cons...
2019-10-11 12:39:19
162
原创 C语言进阶3-指针第一部分
通常情况下,指针指的是指针变量,指针变量存放的是内存地址比如:int a=3; //a空间的地址加假设为0x40080050int *p=&a; 上面的a里面放了个3,*p里面放了a的地址0x40080050,即为指针变量p里面存放的地址指向了空间a.注意上面两幅图片的区别,一个是打印出地址,一个是直接打印出a里面的内容。2,当我们说到地址的时候,是指的是某个字节的...
2019-10-09 12:20:35
183
原创 C语言进阶实战之位运算实战
以下代码都经过了验证,#include <stdio.h>int main(void){ int a = (0xF << 5); printf("%x", ~a); return 0;}位运算实战1给定整型数a,设置a的bit3,保证其他位为0#include <stdio.h>int main(void){ int a = 0...
2019-10-09 10:13:00
154
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人