- 博客(40)
- 资源 (18)
- 收藏
- 关注
转载 光耦的基本原理及TLP521使用-请大家看原版,复制别人的
而输入端的发光管是个二极管,也就是用输入端的电流去控制输出端的电流,功能上和三级管是等效的,而由于中间的控制是靠光传输,所以输入端和输出端可以没有固定的电压差,也即相互隔离。反正我可能分析的也不对。首先,判定运放是否在负反馈,当运放输出电压变大时,光耦发光二极管电流变大,输出端电流也变大,R6电流变大,运放负端输入电压升高,这会使得运放输出变小,所以是负反馈;最后,由于光耦的两个输出端状态一致,输出的电流相等,则R7上产生的压降和R6上的压降也相等,也即R7上的电压等于输入电压,以此实现模拟信号的隔离。
2024-04-22 09:14:36 1119
原创 单片机关于typedef定义结构体,存储占用问题
在开发单片机中,通常用到与网络通信,在接收通信协议的时候,避免不了使用typedef定义结构体。这里测试如果用typedef定义结构体时不占用单片机内存(ZI-data),1、不写结构体定义时:生成的代码空间为:2、在.h文件中增加一个结构体,如下:这时生成的代码空间为:这时,可以发现用typedef定义的结构体时,单片机存储空间没有变化3、该结构体定义全局变量时,...
2019-09-19 18:29:39 2019
转载 STM32 USART1+USART2+USART3+UART4串口配置
转载别人一篇好的文章https://blog.csdn.net/qq_41204464/article/details/90656702
2019-06-14 15:50:20 1249
转载 非常详细的gitlab与sourcetree使用
本人新手第一次使用gitlab和sourcetree,来完成版本控制;介绍个非常详细的sourcetree使用。https://www.cnblogs.com/fps2tao/p/7825742.html
2019-04-11 20:12:23 814
原创 win10设备管理器闪退
新的T480电脑一开始可以打开设备管理器,用一段时间后打不开了,可能安装程序设置的问题,一直没弄好,恢复系统出厂设置也不行,各种办法都试过,最后在一个微社区看到一篇文档有介绍的,最后搞定。链接:https://answers.microsoft.com/zh-hans/windows/forum/windows_10-desktop/闪退闪退打/817bbf87-5d68-4c9e-8f5...
2019-04-11 16:02:17 6770
转载 STM8l 进入低功耗之前配置
在做stm8L的小一个项目,由电池供电,当按键长按关机,系统进入 停机模式,虽然系统运行的时候有十几毫安的电流消耗(还没使用RTC 定时唤醒),但是在停机模式下电流消耗竟然还有1.33ma的电流,花了 半天的时间找资料,看文档,在网上看到不少大牛能做到0.4ua,自己 无论如何设置IO,外设都无补于事,停机模式下电流最低还有1ma。 最后只能将开机初始化的外设函数一个一个注释掉,包括AD...
2018-12-21 15:26:53 2992
转载 STM8L的低功耗模式的配置
低功耗可以说是stm8l系列单片机的核心特色了。假设假设我们有一个温度传感器设备,他处于某种很特殊的地方,只能使用电池,而且我们很难去更换,那么低功耗就显得尤为重要。那么继续假设我们这个温度传感器不需要一直工作,只需要1小时采集一次数据就行了,也就是说,一个小时内,我们这个传感器只工作1秒钟,那么剩下的59分59秒怎么办?也许有的同学就会说了,while(1)循环啊,这种回答就很没有灵性。都不需要...
2018-12-21 15:24:36 5022 2
原创 文字转语音
下载GoldWave,并且安装完成;打开该软件,并根据箭头指示操作,如图所示: 完成后出现下面图片,并且也根据箭头指示操作; 其中:1表示需要转换语音的文字,2点击设置,出现3,3表示需要声音(普通话还是本地方言),4设置8000HZ。完成后,如下图图三点击1,然后输入文件名,点击保存即可。(表示8bit,单声道模式);最后,如果想烧录到文件到flash,使用flash烧...
2018-08-17 11:44:15 550
原创 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 2536
转载 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 15612 1
转载 sqlite入门基础(二):sqlite3_get_table,sqlite3_free_table
上一篇介绍的sqlite3_exec 是使用回调来执行对select结果的操作。还有一个方法可以直接查询而不需要回调。但是,我个人感觉还是回调好,因为代码可以更加整齐,只不过用回调很麻烦,你得声明一个函数,如果这个函数是类成员函数,你还不得不把它声明成static的(要问为什么?这又是C++基础了。C++成员函数实际上隐藏了一个参数:this,C++调用类的成员函数的时候,隐含把类指针当成函数的第
2015-04-14 12:08:41 518
转载 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 518
原创 MCU和DSP特点
DSP芯片一般具有如下主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)采用哈弗结构,即程序和数据空间分开,可以同时访问指令和数据(允许取指令和执行指令完全重叠,也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度); (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬
2015-03-09 14:24:54 1020
原创 指针需要注意的地方
1、如果你已经知道指针将被初始化为什么地址,就把它初始化为该地址,否则就把它初始化为NULL。2、int a; int *d=&a; *d=10-*d; 该语句正确d=10-*d;该语句为非法的。因为它表示把一个整形数量(10-*d)存储于一个指针变量中。3、标准允许指向数组元素的指针与指向数组最周一个元素后面的那个内存位置的指针进行比较,但不允许与指向数组第一个元素之前的
2014-03-20 11:05:43 771
转载 无线遥控解码接收板的输出格式 非锁/互锁/自锁的区别
为了满足不同的应用需要,解码接收电路的输出模式通常分为非锁,互锁,自锁,混合输出。几种模式通俗的说,非锁相当于轻触开关,互锁相当于风扇的档位开关,自锁相当于电灯开关。-------------------------------------------下文为对三种模式详细描述: 非锁型输出又称点动输出,数据脚输出的电平是瞬时的而且和发射端是否发射相对应,可以用于类似点动的
2014-03-10 11:28:28 1249
原创 Ultra Librarian 的安装和使用
Ultra Librarian的下载地址:http://webench.ti.com/cad/ULib.zip,下载后解压,然后一直next,然后就安装好了,安装好出现的界面为:第一步 选择需要转化的.bxl文件,下图是我选择的文件:然后点击“打开”,第二部 选择所使用的PROTEL软件,这里我选择的是AD,第三部:点击最上面图中的3,然后生成一个.TXT文档,如下图
2013-11-30 20:59:39 69361 20
原创 昆仑通态触摸屏使用时注意事项
(1)实时运行库中的变量不能同时添加通道和使用函数发送数据,例如:和。2、在通用串口父设备中选择COM口表示的是选择322还是485,在我的触摸中COM1表示的是232接口,COM2表示的是485接口。如下图3、查看触摸屏的IP地址,可以在触摸屏开始的启动时候点击进度条,里面有显示触摸屏的IP地址。4、遇到的问题:第一在选择莫妮康Modbus Rtu时,通过写函数发送数据,
2013-11-20 18:45:02 21107 1
转载 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 3385
转载 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 854
原创 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 733
原创 高质量 C++/C 编程指南 林锐 摘要 内存管理
1、内存分配方式:内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分
2013-06-22 17:35:50 675
转载 input子系统
Linux输入子系统(Input Subsystem) Linux 的输入子系统不仅支持鼠标、键盘等常规输入设备,而且还支持蜂鸣器、触摸屏等设备。本章将对 Linux 输入子系统进行详细的分析。一 前言 输入子系统又叫 input 子系统。其构建非常灵活,只需要调用一些简单的函数,
2013-06-17 21:49:18 524
转载 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 663
原创 arm开发板的一些常用命令:
这写记录是我经常忘记的东西:做个笔记在这里1、reboot 是重启的意思。2、source 是使那些修改的文件立即生效,避免了重启之后才能生效的问题,例如我们修改了/etc/profiile,修改之后不能立即生效。这时我们输入 source /etc/profile 就可以生效了这些以后还会继续更新。3、chmod -R 777 /home/edu/practice 设置pract
2013-05-30 09:06:15 2322
原创 arm开发板的一些文件的说明
经过几个月的学习,经常用到的东西还不是太懂,这里写下来为了以后的复习,同时也可以帮助一些开发人员的学习。下面就开始吧:/etc/profile这个文件是每个用户登录时都会运行的环境变量设置,1、例如如果开发板设置开发板的IP的时候,我是一开始是这样设置的,#ifconfig eth0 10.220.4.123 up2、在arm开发板挂载虚拟机的目录:mount -o n
2013-05-30 09:03:27 638
转载 IAR常见的错误及解决方法
IAR常见的错误及解决方法 很多朋友对于IAR不是很熟悉,使用IAR编程出错时更不知道从哪里下手,先在网上找到一篇关于《IAR常见错误列表》的文章,以飨读者。这篇文章转自于http://zhenling.chen.blog.163.com/blog/static/194085192009713101043668/转载之后又有我遇到的错误,这里写上去啦并也解决啦,希望对大家有所帮助
2013-05-29 21:28:53 12531
原创 在没有安装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 6068
转载 算术移位和逻辑移位实现分析
unsigned int i = 8;int main(){i = i//输出结果i = 64}上面的变量i是采用逻辑移位还是算术移位呢?逻辑移位,简单理解就是物理上按位进行的左右移动,两头用0进行补充,不关心数值的符号问题算术移位,同样也是物理上按位进行的左右移动,两头用0进行补充,但必须确保符号位不改变但我们好奇的是“
2013-05-22 08:06:15 1029
转载 整型和字符串的相互转化
整型和字符串的相互转化 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 601
转载 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 4730
转载 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 606
原创 const关键字
1、const关键字,它限定一个变量不允许被改变(也就是只读变量),使用const可以再一定的程度上提高代码的安全性和可靠性,,也可以方便别人看代码,明白const所起的作用,2、也可以保护数组的内容:对于处理数组的函数,只能传递指针,原因是这样能是程序的效率更高。如果通过值向函数传递数组,那么函数中必须分配足够的空间存放一份原数组的拷贝的存储空间,然后把原数组的所有数据复制到这个新数
2013-04-23 21:14:31 489
原创 代码摘要
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 779
原创 sizeof()于strlen()函数的区别
1、在一些面试或者阅读代码时经常遇到这两个函数,下面介绍我对这两个的理解,同时验证也是正确的,sizeof()不是一个函数,是一个关键字,strlen()是一个函数,strlen()测得是一个字符串的长度,就是实际存放的几个字符,不包括结束符 ‘\0’,sizeof()测得是一个类型的大小,但对指针测得长度是4,也就是说:只要是指针变量测得长度都是4,下面来看一段代码:
2013-04-22 17:57:41 665
原创 指针函数和函数指针区别
这几天在学习中经常用到指针函数、函数指针,一直记不起来两者的区别,今天把他的区别写下来吧 为以后查找提供方便:1、指针函数:是指带指针的函数,也就是说有返回值是指针类型,其本质就是函数,例如:类型标识符 *函数名(参数表)int *add( int a , int b ){int x=0;x=a+b;return x; }void main(void)
2013-04-22 15:21:57 573
原创 嵌入式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 569
原创 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 882
原创 嵌入式linux-C学习之基础
1、数据类型的转换:转换有两种:(1)自动转化:遵循一定的规则,有编译系统自动完成,自动转换规则:由低到高:char,short——>int——>unsigned——>long——>double (2)强制类型转换:把表达式的运算结果强制转换成所需要的数据类型,例如:(int)(a+b);把a+b的结果转化为整型3、bool变量与
2013-03-23 11:27:02 610
CISCO TFTP 服务器
2015-08-10
哈希表查找
2013-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人