自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

likai_lian的专栏

嵌入式linux初学所做的笔记

  • 博客(39)
  • 资源 (18)
  • 收藏
  • 关注

原创 单片机关于typedef定义结构体,存储占用问题

在开发单片机中,通常用到与网络通信,在接收通信协议的时候,避免不了使用typedef定义结构体。这里测试如果用typedef定义结构体时不占用单片机内存(ZI-data),1、不写结构体定义时:生成的代码空间为:2、在.h文件中增加一个结构体,如下:这时生成的代码空间为:这时,可以发现用typedef定义的结构体时,单片机存储空间没有变化3、该结构体定义全局变量时,...

2019-09-19 18:29:39 1866

转载 STM32 USART1+USART2+USART3+UART4串口配置

转载别人一篇好的文章https://blog.csdn.net/qq_41204464/article/details/90656702

2019-06-14 15:50:20 1192

转载 非常详细的gitlab与sourcetree使用

本人新手第一次使用gitlab和sourcetree,来完成版本控制;介绍个非常详细的sourcetree使用。https://www.cnblogs.com/fps2tao/p/7825742.html

2019-04-11 20:12:23 787

原创 win10设备管理器闪退

新的T480电脑一开始可以打开设备管理器,用一段时间后打不开了,可能安装程序设置的问题,一直没弄好,恢复系统出厂设置也不行,各种办法都试过,最后在一个微社区看到一篇文档有介绍的,最后搞定。链接:https://answers.microsoft.com/zh-hans/windows/forum/windows_10-desktop/闪退闪退打/817bbf87-5d68-4c9e-8f5...

2019-04-11 16:02:17 6600

转载 STM8l 进入低功耗之前配置

在做stm8L的小一个项目,由电池供电,当按键长按关机,系统进入 停机模式,虽然系统运行的时候有十几毫安的电流消耗(还没使用RTC 定时唤醒),但是在停机模式下电流消耗竟然还有1.33ma的电流,花了 半天的时间找资料,看文档,在网上看到不少大牛能做到0.4ua,自己 无论如何设置IO,外设都无补于事,停机模式下电流最低还有1ma。 最后只能将开机初始化的外设函数一个一个注释掉,包括AD...

2018-12-21 15:26:53 2932

转载 STM8L的低功耗模式的配置

低功耗可以说是stm8l系列单片机的核心特色了。假设假设我们有一个温度传感器设备,他处于某种很特殊的地方,只能使用电池,而且我们很难去更换,那么低功耗就显得尤为重要。那么继续假设我们这个温度传感器不需要一直工作,只需要1小时采集一次数据就行了,也就是说,一个小时内,我们这个传感器只工作1秒钟,那么剩下的59分59秒怎么办?也许有的同学就会说了,while(1)循环啊,这种回答就很没有灵性。都不需要...

2018-12-21 15:24:36 4860 2

原创 文字转语音

下载GoldWave,并且安装完成;打开该软件,并根据箭头指示操作,如图所示: 完成后出现下面图片,并且也根据箭头指示操作; 其中:1表示需要转换语音的文字,2点击设置,出现3,3表示需要声音(普通话还是本地方言),4设置8000HZ。完成后,如下图图三点击1,然后输入文件名,点击保存即可。(表示8bit,单声道模式);最后,如果想烧录到文件到flash,使用flash烧...

2018-08-17 11:44:15 483

原创 8266 执行./gen_misc.sh 通过管道实现默认输入参数,不用手动选择参数

在执行8266 ./gen_misc.sh 时,需要输入一些字符来生成bin文件,如果每次都执行 ./gen_misc.sh 需要每次都输入响应的字符,比较麻烦,解决方法通过管道方式实现默认的输入字符。例如: ./gen_misc.sh文件#!/bin/bash:******NOTICE******MUST set SDK_PATH & BIN_PATH f

2017-02-09 17:58:40 2495

转载 modbus poll的使用

Modbus测试工具 :Modbus Poll,Modbus Slave1,简介网站地址:http://www.modbustools.com/该网站提供了几个软件工具,可以运行于windows 2000/XP/Vista/7环境下,用来测试和仿真Modebus设备。Modbus Poll :Modbus主机仿真器,用于测试和调试Modbus从设备。该软件支

2016-04-14 09:48:00 15379 1

转载 ZStack协议按键处理流程分析

点击打开链接

2015-07-20 09:58:20 680

转载 sqlite入门基础(二):sqlite3_get_table,sqlite3_free_table

上一篇介绍的sqlite3_exec 是使用回调来执行对select结果的操作。还有一个方法可以直接查询而不需要回调。但是,我个人感觉还是回调好,因为代码可以更加整齐,只不过用回调很麻烦,你得声明一个函数,如果这个函数是类成员函数,你还不得不把它声明成static的(要问为什么?这又是C++基础了。C++成员函数实际上隐藏了一个参数:this,C++调用类的成员函数的时候,隐含把类指针当成函数的第

2015-04-14 12:08:41 507

转载 sqlite入门基础(一):sqlite3_open,sqlite3_exec,slite3_close

打开数据库链接sqlite3_open用法原型:int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */);用这个函数开始数据库操作。需要传入两个参数,一是数据库文件名

2015-04-14 12:04:33 511

原创 MCU和DSP特点

DSP芯片一般具有如下主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)采用哈弗结构,即程序和数据空间分开,可以同时访问指令和数据(允许取指令和执行指令完全重叠,也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度); (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬

2015-03-09 14:24:54 952

原创 指针需要注意的地方

1、如果你已经知道指针将被初始化为什么地址,就把它初始化为该地址,否则就把它初始化为NULL。2、int  a; int *d=&a;   *d=10-*d;  该语句正确d=10-*d;该语句为非法的。因为它表示把一个整形数量(10-*d)存储于一个指针变量中。3、标准允许指向数组元素的指针与指向数组最周一个元素后面的那个内存位置的指针进行比较,但不允许与指向数组第一个元素之前的

2014-03-20 11:05:43 756

转载 无线遥控解码接收板的输出格式 非锁/互锁/自锁的区别

为了满足不同的应用需要,解码接收电路的输出模式通常分为非锁,互锁,自锁,混合输出。几种模式通俗的说,非锁相当于轻触开关,互锁相当于风扇的档位开关,自锁相当于电灯开关。-------------------------------------------下文为对三种模式详细描述:  非锁型输出又称点动输出,数据脚输出的电平是瞬时的而且和发射端是否发射相对应,可以用于类似点动的

2014-03-10 11:28:28 1202

原创 Ultra Librarian 的安装和使用

Ultra Librarian的下载地址:http://webench.ti.com/cad/ULib.zip,下载后解压,然后一直next,然后就安装好了,安装好出现的界面为:第一步 选择需要转化的.bxl文件,下图是我选择的文件:然后点击“打开”,第二部  选择所使用的PROTEL软件,这里我选择的是AD,第三部:点击最上面图中的3,然后生成一个.TXT文档,如下图

2013-11-30 20:59:39 68878 20

原创 昆仑通态触摸屏使用时注意事项

(1)实时运行库中的变量不能同时添加通道和使用函数发送数据,例如:和。2、在通用串口父设备中选择COM口表示的是选择322还是485,在我的触摸中COM1表示的是232接口,COM2表示的是485接口。如下图3、查看触摸屏的IP地址,可以在触摸屏开始的启动时候点击进度条,里面有显示触摸屏的IP地址。4、遇到的问题:第一在选择莫妮康Modbus Rtu时,通过写函数发送数据,

2013-11-20 18:45:02 19889

转载 EINT、DINT、ERTM、DRTM和INTM、DBGM解析

一、参考DSP281x_Device.h #define  EINT   asm(" clrc INTM")  //INTM置0,开中断 #define  DINT   asm(" setc INTM")  //INTM置1,关中断 #define  ERTM   asm(" clrc DBGM")  //使能调试事件 #define

2013-09-17 13:59:13 3251

转载 arm-linux-gcc的安装

1、拷贝交叉编译器到虚拟机下;2、sudo mkdir /usr/local/arm  ;  //在/usr/local目录下建立arm文件夹3、sudo  tar zxvf arm-linux-gcc-4.3.2.tar.gz -C /usr/local/arm4、安装完交叉编译器后打开   :

2013-09-15 13:43:05 810

原创 CCS5.4修改字体大小

第一步:第二步:点击确定就OK了。

2013-08-19 14:42:33 4010

原创 ubuntu下用vi打开文件,方向键和退格键都不能用的解决办法

今天在刚刚装上ubuntu用vi打开文件,发现方向键和退格键都不能用,我查了先看到有很多解决方法、也很详细,这里我介绍下我以为最简单的解决办法,下面就来介绍下:由于/etc/vim/vimrc.tiny的拥有者是root用户,所以(1)打开文件:sudo gedit /etc/vim/vimrc.tiny(2)修改倒数第二行,将“compatible”改成“nocompatible

2013-07-02 10:30:46 714

原创 高质量 C++/C 编程指南 林锐 摘要 内存管理

1、内存分配方式:内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分

2013-06-22 17:35:50 669

转载 input子系统

Linux输入子系统(Input Subsystem)        Linux 的输入子系统不仅支持鼠标、键盘等常规输入设备,而且还支持蜂鸣器、触摸屏等设备。本章将对 Linux 输入子系统进行详细的分析。一    前言                输入子系统又叫 input 子系统。其构建非常灵活,只需要调用一些简单的函数,

2013-06-17 21:49:18 517

转载 kzalloc ()函数详解

用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0.view plain/**  * kzalloc - allocate memory. The memory is set to zero.  * @size: how many bytes

2013-06-16 19:55:09 652

原创 arm开发板的一些常用命令:

这写记录是我经常忘记的东西:做个笔记在这里1、reboot 是重启的意思。2、source 是使那些修改的文件立即生效,避免了重启之后才能生效的问题,例如我们修改了/etc/profiile,修改之后不能立即生效。这时我们输入 source /etc/profile 就可以生效了这些以后还会继续更新。3、chmod -R 777 /home/edu/practice 设置pract

2013-05-30 09:06:15 2156

原创 arm开发板的一些文件的说明

经过几个月的学习,经常用到的东西还不是太懂,这里写下来为了以后的复习,同时也可以帮助一些开发人员的学习。下面就开始吧:/etc/profile这个文件是每个用户登录时都会运行的环境变量设置,1、例如如果开发板设置开发板的IP的时候,我是一开始是这样设置的,#ifconfig eth0 10.220.4.123 up2、在arm开发板挂载虚拟机的目录:mount -o n

2013-05-30 09:03:27 620

转载 IAR常见的错误及解决方法

IAR常见的错误及解决方法 很多朋友对于IAR不是很熟悉,使用IAR编程出错时更不知道从哪里下手,先在网上找到一篇关于《IAR常见错误列表》的文章,以飨读者。这篇文章转自于http://zhenling.chen.blog.163.com/blog/static/194085192009713101043668/转载之后又有我遇到的错误,这里写上去啦并也解决啦,希望对大家有所帮助

2013-05-29 21:28:53 12062

原创 在没有安装QT的电脑上运行QT程序常见的问题

关于qt程序在没有安装qt电脑上出现的问题:1、乱码:直接把安装到qt里面的文件拷到你要运行的程序目录下,位置为:C:\Qt\2010.05\qt\plugins\codecs的codecs文件夹,放到你的.exe同级目录下,codecs只要qcncodecs4.dll、qcncodecsd4.dll这两个动态库,把没用的文件删掉即可。2、图片不能显示:还是和上面一样,直接拷贝

2013-05-23 17:45:44 5985

转载 算术移位和逻辑移位实现分析

unsigned int i = 8;int main(){i = i//输出结果i = 64}上面的变量i是采用逻辑移位还是算术移位呢?逻辑移位,简单理解就是物理上按位进行的左右移动,两头用0进行补充,不关心数值的符号问题算术移位,同样也是物理上按位进行的左右移动,两头用0进行补充,但必须确保符号位不改变但我们好奇的是“

2013-05-22 08:06:15 987

转载 整型和字符串的相互转化

整型和字符串的相互转化 atoi, atol, atoll, atoq -- convert a string to an integer相关函数: atof, atol, atrtod, strtol, strtoul表头文件: #include 定义函数: int atoi(const char *nptr);函数说明: atoi()会扫描参数nptr字符串,跳过前面的

2013-05-05 20:31:07 587

转载 QT之this指针

this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子: void Date::setMonth(int mn ) { month = mn; // 这三句是等价的 this->month = mn; (*this).month = mn; }1. this只能在成员函数中使用。 全局函数,静态函数都不能使用this。 实际上,成员函数默认第一个参数为T*

2013-05-02 08:52:13 4693

转载 VI打开和编辑多个文件的命令(转)

VI打开和编辑多个文件的命令(转)  2013-01-13 16:27:48|  分类:shell |  标签:|字号大中小 订阅可分两种情况:1、在同一窗口中打开多个文件:vi file1 file2 file3:n  切换到下一个文件 (n=next):N  切换到上一个文件2、在不同窗

2013-04-24 14:53:40 598

原创 const关键字

1、const关键字,它限定一个变量不允许被改变(也就是只读变量),使用const可以再一定的程度上提高代码的安全性和可靠性,,也可以方便别人看代码,明白const所起的作用,2、也可以保护数组的内容:对于处理数组的函数,只能传递指针,原因是这样能是程序的效率更高。如果通过值向函数传递数组,那么函数中必须分配足够的空间存放一份原数组的拷贝的存储空间,然后把原数组的所有数据复制到这个新数

2013-04-23 21:14:31 479

原创 代码摘要

1、函数指针应用,void find_fun(void){STU stu;printf("in find_fun\n");scanf("%s", stu.name);getchar();find_stu_db_get_table(db, &stu);}void print_fun(void){printf("in print_fun\n");

2013-04-22 21:26:50 744

原创 sizeof()于strlen()函数的区别

1、在一些面试或者阅读代码时经常遇到这两个函数,下面介绍我对这两个的理解,同时验证也是正确的,sizeof()不是一个函数,是一个关键字,strlen()是一个函数,strlen()测得是一个字符串的长度,就是实际存放的几个字符,不包括结束符 ‘\0’,sizeof()测得是一个类型的大小,但对指针测得长度是4,也就是说:只要是指针变量测得长度都是4,下面来看一段代码:

2013-04-22 17:57:41 652

原创 指针函数和函数指针区别

这几天在学习中经常用到指针函数、函数指针,一直记不起来两者的区别,今天把他的区别写下来吧 为以后查找提供方便:1、指针函数:是指带指针的函数,也就是说有返回值是指针类型,其本质就是函数,例如:类型标识符   *函数名(参数表)int  *add( int a , int b ){int x=0;x=a+b;return x; }void main(void)

2013-04-22 15:21:57 566

原创 嵌入式linux C 之指针

1、指针变量:就是用来存放指针(地址)的变量,它的值是地址,也可以这样理解,指针的实质就是地址。2、指针数组:若数组的元素都是地址那么这个数组就是指针数组。例如:int *p[4]={ &a[0],&a[1],&a[2],&a[3] };又例如:char *name[2]={ " I am is "," perfact" }; 那么name[0]="I am is" ;  name[1]=

2013-03-23 15:27:58 536

原创 Linux C 之数组和函数

数组:把具有相同类型的若干变量按有序的形式组织起来,这些按序排列的形同类型数据元素的集合称为:数组  一维数组的初始化(1)可以只给部分元素赋初值,例如:int a[10]={0,1,2,3}; 只给a[0]~a[3]四个元素赋初值,其他元素的默认为0(2)只能给元素逐个赋值,不能给数组整体赋值。例如:int  a[5]={1,1,1,1,1,};正确。  int a[5]

2013-03-23 12:26:56 850

原创 嵌入式linux-C学习之基础

1、数据类型的转换:转换有两种:(1)自动转化:遵循一定的规则,有编译系统自动完成,自动转换规则:由低到高:char,short——>int——>unsigned——>long——>double                         (2)强制类型转换:把表达式的运算结果强制转换成所需要的数据类型,例如:(int)(a+b);把a+b的结果转化为整型3、bool变量与

2013-03-23 11:27:02 598

STM32双bank实现在线升级

STM32L071通过内置的双bank功能实现无用户BootLoader在线升级。

2023-11-03

微信AIRKISS配网的二维码

使用微信扫码配置wifi上网,AIRKISS配网的二维码.

2023-06-09

25V市电和24V电池电源切换

24V市电和电池电源切换,有24V市电时优先用24V市电,没市电24V时,切换成24V电池供电。

2023-06-09

NBIOT长寿命电池方案用于设计时参考

电池在NBIOT产品中的应用

2023-06-09

NB-IOT开发版原理图

中国移动官网出的NB-IOT开发板,这里只是原理图可以参考,省电部分也有

2019-01-31

AIR868硬件设计手册

GPRS二次开发模块,挺好用的,推荐下,省去其他GPRS模块繁琐的AT指令,自己可以定义私有协议,官网有例程

2019-01-31

低功耗3.3V稳压芯片

xc6206p332mr,低功耗3.3v稳压芯片首选,这个系类还有挺多的,大家可以看看

2019-01-31

AT88SC102卡特性简介

AT88SC102卡特性简介,芯片卡操作必备,插卡式IC卡,

2019-01-31

语音合成软件

单片机通过da输出到音频放大器,输出语音,这个软件是文字转成语音,生成.wav格式文件

2018-07-17

修改PCB默认网络标号大小

从原理图导入PCB的时候默认长宽高有时候需要修改,这里设置一次以后用AD软件后在导入PCB默认长宽高就是你自己设定的大小

2018-07-17

Source Insight 代码格式转化

source insight导入的内核文件转为我们习惯的格式。 这里我用的AStyle插件。里面有AStyle.exe文件及使用。

2016-05-30

USB3.0A封装库

USB3.0A封装库

2016-04-06

CISCO TFTP 服务器

CISCO公司出品的 TFTP 服务器,常用于CISCO 路由器的IOS升级与备份工作。也可用于个人建立TFTP服务器,进行文件传输. 例如可以从arm开发板拷贝文件到PC机,一般别的软件无法实现。

2015-08-10

C语言深度剖析

C语言深度剖析,讲述经常犯错误的地方以及一些不为人知的秘密

2014-11-22

快速排序来实现数组、链表的排序

快速排序时目前比较的好的排序方法,相比较的别排序法,例如冒泡法,选择法等等。

2013-04-22

哈希表查找

//待存入表格数据 char *key_input[] = { "auto", "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for", "goto", "if", "int", "long", "register", "return", "short", "signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while" }; char *key_help_temp[] = { "auto function", "break function", "case function", "char function", "const function", "continue function", "default function", "do function", "double function", "else function", "enum function", "extern function", "float function", "for function", "goto function", "if function", "int function", "long function", "register function", "return function", "short function", "signed function", "sizeof function", "static function", "struct function", "switch function", "typedef function", "union function", "unsigned function", "void function", "volatile function", "while function" }; //功能:输入一个C语言关键字,快速提示这个关键字的功能及用法

2013-04-22

ds1302 在TFT液晶屏上显示

ds1302 时钟在2.8寸TFT液晶模块上显示 包含好多 函数 画线、圆、图片

2012-10-25

win7 超级终端

win7超级终端 是从XP上面考下来的 超实用的超级终端

2012-10-25

SSD1289控制器驱动数据手册

SSD1289控制器驱动数据手册 官方的资料 不过全是英文的

2012-10-05

3.2寸TFT触摸屏资料

51驱动3.2寸TFT液晶屏 有详细的讲解

2012-10-05

stm32官方 资料大全

里面包含官方的一些源码,JATG、LCD、POWER等PDF文档

2012-06-22

stm32简单的IO口输出

简单的STM32 I/O口输出 控制LED

2012-06-22

空空如也

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

TA关注的人

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