- 博客(120)
- 资源 (33)
- 收藏
- 关注
原创 怎么查看单片机程序占多少RAM 、ROM
Code = 121550 字节——程序代码段的flash 大小RO-data = 12154字节——程序中所定义的指令和常量大小(read only)RW-data = 1896 字节——程序中已初始化的变量大小(read/write)ZI-data = 34472 字节——程序中未初始化的变量大小(zero)单片机 单片机 FLASH 空间被谁占用了
2017-09-26 14:25:55
11226
1
原创 Modbus协议中概念
1、保持寄存器和输入寄存器是什么?最为不同的就是保持寄存器的值可以读取也可以修改,而输入寄存器的值对于master来说就只能读取。所谓保持寄存器,指的是可以通过通信命令读或者写的寄存器;通常是一些功能控制寄存器或者输出寄存器等。不同的设计中,有些保持寄存器是掉电保持;有些则不。这个看需要,不一定的。所谓输入寄存器,指的是只能读不能写的寄存器,通常是状态寄存器或者是输入结果寄存器等。(输
2017-09-11 10:46:25
1028
原创 3DES加密
#include "des.h"#include /************************************************************************//* *//* Module title:
2017-09-07 22:03:48
1956
2
原创 Ubuntu 14.04设置默认root 用户
1、先切换到root用户2、在 /etc/lightdm/ 创建文件 lightdm.confvim /etc/lightdm/lightdm.conf在lightdm.conf中写入这些命令:(以下命令复制到lightdm.conf)[SeatDefaults]autologin-user=rootautologin-user-timeo
2017-08-26 13:54:27
723
原创 GSM模块启动流程
1、 AT通讯正常:模块开机后,发送指令 AT,返回OK 表示模块通讯正常。2、 自适应波特率情况下,AT 通讯需要进行同步串口波特率流程,此步骤可参考图2 流程。
2017-08-25 08:53:16
3386
原创 AD PCB打印1:1
1、打印设置(print preview):在AD中,如果默认的打印设置不是1:1的,可以从文件(file)—>打印预览(print preview),进入打印预览。2、右键,页面设置(page setup)3、纸张选择A4(常用的),Portrait(肖像,是立着的),landscape(风景,是横着的),在Scaling(比例)选项中,模式选择Scale P
2017-08-23 18:12:28
6101
1
原创 QT编写cmd工具
mainwindow.c#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); this->pro
2017-08-18 18:38:07
1550
2
原创 QT 显示图片
#include "mainwindow.h"#include "ui_mainwindow.h"#includeMainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);}MainWindow::~Main
2017-08-18 16:02:31
811
原创 两个单片机串口通讯IO口串电阻
最近生产了一批电路板,2个单片机串口IO口之间焊了10k的电阻,发现在波特率9600情况下没问题,而在波特率为115200的时候不能通讯,需要把电阻改成1k
2017-07-06 14:04:35
11601
4
原创 数据转换宏
#define LB(x) ((unsigned char)(x))#define HB(x) ((unsigned char)(x>>8))#define DEC2BCD(x) ((((x/10)#define BCD2DEC(x) ((((x>>4)&0x0f)*10)+(x&0x0f))#define BCD2BIN(n) (((((n) >> 4) & 0x0F
2017-06-21 10:13:08
766
原创 uchar a=2,b=254;a-b=?
uchar a=2,b=254;a-b=4;254=-2; -(-2)=+2;255=-1; +1=-255
2017-06-10 10:29:11
1441
原创 敷铜的时候间距调整办法
画板的时候 线间距通常是设置7mil ,但是敷铜的时候想离线远一点 可以添加一个规则如果想在顶层敷铜的间距是30 那么可以再添加一个规则
2017-05-19 16:35:42
2869
原创 Altium Designer覆铜特定区域不敷铜?
方法1:place/solid region,在定位孔附近画一个区域(若要画圆形的区域,先画圆并选中,再tools/convert/create cutout from selected primitives),双击勾选polygon cutout,完成敷铜。方法2:先敷铜,再place/polygon pour cutout,双击铜皮,重新敷铜。
2017-05-19 15:35:22
13083
原创 Hello QT
#include #include #include #include int main(int argc, char* argv[]){ QApplication a(argc, argv); QMainWindow w; QPushButton b(&w); b.setText("Hello QT!"); for(int i=0; i<10
2017-03-26 23:11:07
922
原创 HJT212协议
HJ/T212是由国家环保行业制定的数据传输标准协议,目前广泛使用的是HJ/T212-2005通信协议,该协议在2005年制定,并于2006年2月1日正式实施。 HJ/T212标准不规定数据采集传输仪与监控仪器仪表的通讯方式,可以采用RS232、RS485、GPRS、TCP/IP等通信方式。 HJ/T212通讯协议数据结构中所有的通讯包都是由ACSII码字符组成(CRC校验码除外)。
2017-03-21 15:40:42
38397
3
原创 lwip学习杂记之int lwip_setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen);
optval = 1; lwip_setsockopt(socket_list[i].socket, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof(optval)); /** µ÷ÓÃclosesocketºóÇ¿ÖÆ¹Ø±Õ */
2017-03-19 14:32:25
7139
原创 C语言的关键字有几个
C语言有32个关键字,初学者比较容易忽略的有union 联合体enum 声明枚举类型register 声明寄存器变量goto 无条件跳转语句sizeof 计算对象所占的空间大小
2017-03-15 18:15:47
3096
原创 stm32的备份寄存器能否当EEPROM来用?
突然想到stm32的备份寄存器能否当EEPROM来用这个问题。百度了一把,答案是不行的。因为是EEPROM是不需要任何电的,而stm32的备份寄存器是靠TC电池.首先 检查RTC电池是否装载,没电池的话,设备掉电也保存不了数据。备份寄存器就是普通的RAM,需要配合外接电池使用,如果没有电池,就不能掉电保持数据。因为是普通RAM,所以不存在写入次数的问题,理论上是无限次的。
2017-03-14 13:34:50
1687
原创 MT7620路由器设计笔记
无法输入的时候有2个原因:CRT配置的时候打钩全部去掉,MT7620的RX引脚电阻分压要改成0欧姆,因为模块电平也是3.3V。PCB要改版的地方:1地线要加粗,按键方向,看门狗电路要改
2017-03-13 11:14:53
4443
原创 RT-Thread的rt_thread_create函数介绍
thread = rt_thread_create("T_RTU", Thread_RTU, RT_NULL, 2048, //分配堆栈大小 3, // 线程的优先级 20);//线程所分配的时间片 当一个线程的优先级独一无二的时候,它的时间片这个参数将失去作用,我们不要认为上面的两个线程运行完 20 个系统 ticks 后就会
2017-03-07 17:33:30
10211
原创 基本的HTTP流程有哪些
HTTP是Hyper Text Transfer Protocol(超级文本传输协议)的缩写,其主要负责服务器与浏览器之间的通信.HTTP把客户端浏览器的请求发送到服务器,并响应的网页内容由服务器返回到客户端浏览器。(1)打开HTTP连接。因为HTTP是一种无状态协议,所以每一个请求都需要建立一个新的连接。(2)初始化方法请求。包含一些类型的方法指示符,它们的用来描述调用什么方法和需要什么
2017-03-06 23:04:26
991
原创 printf()函数是否有返回值
有。printf函数的一般形式为int printf(const char) * format,[argument]),它返回一个int,表示被打印的字符数。#includeint main(){ int i=4321; printf("%d\n",printf("%d\n",printf("%d\n",i))); return 0;}输出:432
2017-03-05 11:58:18
1082
原创 \n与\n\r的区别
换行(\n)就是光标下移一行却不会移到这一行的这一行的开头回车(\r)就是回到当前行的开头却不会下移一行按键后会执行“\n\r”,这样就是看到的一般意义的回车了,所以在用十六进制查看方式看一个文本,就会在行尾发现“\n\r”。Tab是制表符,就是“\t”,作用是预留8个字符的显示宽度,用于对齐。引申:“\n”与‘\n’的区别“\n”的是一个字符串,该字符串以‘/
2017-03-05 11:27:46
1349
原创 altium designer绘制 pcb时怎么隐藏其中网络提示线
在画PCB的时候想隐藏掉一下网络线,比如GND。通常GND的线是不手工步的,我们可以隐藏GND来看看其它线是否全部步完,这样就不用覆铜然后DRC检查是否步完等这繁琐的步骤。隐藏网络线 快捷键N-H-N ,选中要隐藏的网络线显示网络线 快捷键N-S-N 选中要显示的网络线
2017-03-04 13:29:38
21521
2
原创 枚举和define有什么区别
两者只有恨小的区别,在C语言中,枚举为整型,枚举常量为int型,因此它们都可以和其他整型类别混用而不会出错,而且枚举优点众多;能自动赋值;调试器在检验枚举变量时,可以显示符号值;服从数据块作用域规则。具体而言,两者的区别表现在以下几个方面:(1)枚举常量是实体中的一种,而宏定义不是实体。(2)枚举常量属于常量,但宏定义不是常量。 (3)枚举量具有类型,但宏没有类型,枚举变量具有与普通变
2017-03-01 23:46:24
2254
1
原创 如何用sizeof判断数组中有多少个元素
只需要用整个数组的sizeof去除以一个元素的sizeof即可求出数组中元素的个数,以数组名array为例,代码为 #define Count (sizeof(array[0]))或者#define Count(sizeof(array)、sizeof(数组的类型,如int,double等))。程序示例如下:#include#define Count (sizeof(array)/si
2017-03-01 23:27:46
4479
原创 不使用sizeof,如何求出数据类型的字节数
32位机器下,int型变量占用的内存空间大小为4个字节,如果不用sizeof的话可以通过以下2种方式:1,定义宏 #include #define MySizeof(Value) (char*)(&Value+1)-(char *)&Value int main() { int i; double f; double a[4]; double *q; print
2017-02-27 23:46:05
1914
2
原创 C语言中,整型变量x小于0,是否可知x*2也小于0
假定计算机中32位的,用2的补码表示整数,若x程序如下: #include int main() { int x= -4292967295; if(2*x<0) printf("2*x<0\n"); else printf("2*x>0\n"); return 0; }程序输出 2*x>0
2017-02-25 23:35:45
1665
原创 RT-Threaad的。drive.c
/* * File : device.c * This file is part of RT-Thread RTOS * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team * * The license and distribution terms for this file may be * found in the
2017-02-23 09:13:45
833
原创 char str1[]="abc"; char str2[]="abc";str1与str2不相等,为什么
两者不相等,是因为str1 和 str2 都是字符数组,每个都有其自己的存储区,它们的值则是各存储区的首地址。但有些情况却不一样,程序如下:#include int main(void){ const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; c
2017-02-22 22:59:00
4955
1
原创 枚举变量的值如何计算
以如下程序实例进行分析。 #include int main() { enum{a, b=5, c,d=5,e); printf("%d%d%d%d%d\n",a,b,c,de); return 0; } //程序输出 0 5 6 4 5枚举量的值默认为前一个变量值加1,而第一个如果没有赋值,则默认值为0。从这个例子可以看出枚举量值是可以重复的。
2017-02-21 23:24:56
1525
原创 断言ASSERT() 是什么
ASSERT()一般被称为断言,它是一个调试程序时经常使用的宏。它定义在头文件中,通常用于判断程序中是否出现了非法的数据,在程序运行时它计算括号内的表达式的值。在此强调的一点,ASSERT()捕获的是非法情况,而非错误情况,错误情况是必然存在的,并且一定需要作出相应的处理,而非法情况则不是,它可能只是漏洞而已。其用法如下: ASSERT(n != 0); k = 10/n;
2017-02-20 23:39:44
1241
原创 原理图和PCB对应元器件交叉查找
http://blog.csdn.net/jayson_zhong/article/details/49980905
2017-01-09 09:32:17
3321
原创 C语言到C++的升级
在C语言中,重复定义多个同名的全局变量是合法的(多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上)在C++ 中,不允许定义多个同名的全局变量struct 关键字的加强--C语言中的 struct 定义了一组变量的集合--C语言中的struct 定义的标识符并不是一种新的类型--C++中的struct用于定于一个全新的类型(也就是说不用typedef再声明一
2016-12-21 09:23:41
647
树莓派系统安装教程
2016-08-07
《Rapid GUI Programming with Python and Qt》
2016-08-19
Jlink驱动稳定版
2016-07-30
M35命令AT指令
2017-10-21
LinkIt Smart MT7688
2017-12-10
ST公司以太网培训资料
2017-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅