-
羊肉汤的做法
将羊肉洗净后加入清水浸泡2小时,浸泡时候加入几颗青花椒,这一步的目的是去除羊肉的血水和减少异味 焯水。冷水下锅,加入料酒、青花椒、葱段、姜,大火烧开,烧开后撇去浮沫,再煮2分钟后捞出 加入适量的清水,将水烧开后再放羊肉,放入生姜和大葱,这样可以减少膻味,让汤更鲜美。 盖上锅盖再将水烧开,水烧开后将锅盖掀开再继续煮2小时,中途将大葱捞出不用。然后再煮60分钟,60分钟后将熟烂的羊肉捞出,趁热将骨头取下,将取下的羊骨继续下锅煮…
-
stm32注意事项
调试时候不能开看门狗,不然会一直复位 在调试时候不能打断点,可能原因是被优化了 待续转载请注明:guanjianhe的博客 » stm32注意事项…
-
utf-8转gbk
#! python3# -*- coding: utf-8 -*-' utf8togbk '__author__ = 'guanjianhe'import sysdef utf8togbk(file): content = '' try: # 以utf-8编码读取 with open(file, 'r', encoding='utf-8') as fp: content = fp.read() # 解码错误,则说明不是以u...…
-
每两个字节交换
在工作时候,遇到需要把一个文件中所有的字节,每两个字节交换一个位置,例如第一个字节和第二个字节交换位置,第三个和第四个字节交换一下位置,以此类推。在此特作下记录。#include "stdio.h"#include "string.h"#include "malloc.h"int main(void){ FILE *fin; FILE *fout; void *fBuffStart = NULL; void *fBuffEnd = NULL; unsigned...…
-
文件数据转对应的数组
有时候需要把文件二进制数据转成对应的数组,以下程序能实现功能:#include <stdio.h>#include <string.h>/* * feof():当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。 * C 库函数 int getc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。 * C 库函数 int fprintf(FILE *stream, const char ...…
-
十六进制的字符转成对应的十六进制数
有时候得到的文件数据是十六进制字符形式,这时候需要把字符形式的十六进制转成对应的十六进制数,代码如下:#include <stdio.h>#include <string.h>//十六进制字符转二进制/* C 库函数 int feof(FILE *stream) 测试给定流 stream 的文件结束标识符。 */int main(void){ unsigned int tmp; FILE *infp; FILE *outfp; /* 打开文件...…
-
老情书
老太太拄着拐杖,站在酒吧里,痛骂年轻人一顿,抖出张发黄的字条说:“这是老头儿写给我的,读给你们听。哎哟呆逼,拿错了,这是电费催缴单。”你会不会说话?会说话的人分两种。第一种会说话,是指能判断局势,分门别类,恰好说到对方心坎里,比如蔡康永。第二种会说话,是指话很多,但没一句动听的,整个就像弹匣打不光的AK47,比如胡言。胡言是我朋友中最特立独行的一位,平时没啥存在感,嘴巴一张就是发核弹,“乓”,炸得大家灰头土脸。一哥们儿失恋,女朋友收了他的钻戒跟别人跑了。狐朋狗友齐聚KTV,都不敢提这茬儿,...…
-
一种延时技巧
代码如下:#define bSystem10Msec gTimer.Status.field.bit0#define bSystem50Msec gTimer.Status.field.bit1#define bSystem100Msec gTimer.Status.field.bit2#define bSystem1Sec gTimer.Status.field.bit3#define bTemp10Msec gTimer.Status.field.bit4#define bTemp50...…
-
拥有的单片机的原理图
原理图如下: 原理图 最小系统板使用手册 数据手册原理图未完待续。。。…
-
水煮鸡蛋
冷水下锅 加几滴醋 水开后转小火,再煮10分钟即可捞出放入冷水中进行冷却 这样煮出的鸡蛋特别好剥皮转载请注明:guanjianhe的博客 » 水煮鸡蛋…
-
JDK安装注意事项
不安装Public JRE 不推荐安装在有空格的路径下,例如装在C:\Java\jdk\1.8.0 添加环境变量,建议加在用户变量里面。路径值为(以上面路径为例)C:\Java\jdk\1.8.0\bin 如果JDK版本是在$1.5$以上,则CLASSPATH环境变量没有必要加 测试是否成功 在命令行中运行 java或javac命令 转载请注明:guanjianhe的博客 » JDK安装注意事项…
-
常用软件及下载地址
everything Snipaste 7-Zip Anki listen1 foobar2000 potplayer typora XShell6 欧路词典 Dev-C++ Internet Download Manager XMind Sumatra PDF EmEditor FileZilla git myBase Quicker f.lux v2rayN AnkiDroid shadowsocks shadowsocks-andro...…
-
按键驱动架构
之前在网上看到一个非常不错的矩阵按键驱动架构,特此记录一下。首先来看一下矩阵按键原理图://首先先定义一下这8个变量:sbit KEY_IN_1 = P2 ^ 4;sbit KEY_IN_2 = P2 ^ 5;sbit KEY_IN_3 = P2 ^ 6;sbit KEY_IN_4 = P2 ^ 7;sbit KEY_OUT_1 = P2 ^ 3;sbit KEY_OUT_2 = P2 ^ 2;sbit KEY_OUT_3 = P2 ^ 1;sbit KEY_OUT_4 = P2 ^ 0;...…
-
汇编笔记05
CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。 字单元:即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。 N地址单元:将起始地址为N的字单元简称为N地址字单元。比如一个字单元由2、3两个内存单元组成,则这个字单元的起始地址为2,我...…
-
汇编笔记04
几个命令: 命令 功能 R 查看、改变CPU寄存器的内容 D 查看内存中的内容 E 改写内存中的内容 U 将内存中...…
-
汇编笔记03
8086CPU在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。 段地址在8086CPU的段寄存器中存放。8086CPU有4个段寄存器:CS、DS、SS、ES。 CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器,从名称上我们可以看出它们和指令的关系。 在8086PC机中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存M×16+N单元开始,读取一条...…
-
汇编笔记02
物理地址:CPU访问内存单元时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。 16位结构的CPU: 运算器一次最多可以处理16位的数据; 寄存器的最大宽度为16位; 寄存器和运算器之间的通路为16位。 也就是说,在8086内部,能够一次性处理、传输、暂时存储的信息的最大长度是16位的。内存单元的地址在送上地址总线之前,必须在CPU中处...…
-
汇编笔记01
8086CPU有14个寄存器,每个寄存器有一个名称。这些寄存器是:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW. 8086CPU的所有寄存器都是16位的,可以存放2个字节。AX,BX,CX,DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。 8086CPU的上一代CPU中的寄存器都是8位的,为了保证兼容,8086CPU的AX,BX,CX,DX这4个寄存器都可分为两个可独立使用的8位寄存器来用: AX可分为AH和AL...…
-
C语言文件读写
打开文件FILE *fopen(const char *filename, const char *mode) filename – 这是 C 字符串,包含了要打开的文件名称。 mode – 这是 C 字符串,包含了文件访问模式,模式如下: “r”:打开一个文本文件,可以读取文件,该文件必须存在 “w”:打开一个文本文件,可以写入文件,如果文件不存在则创建,存在则覆盖 “a”:打开一个文本文件,可以写入文件,向已有文件的尾部追加内容,如...…