自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lichao_ustc的专栏

硬件工程师

  • 博客(63)
  • 资源 (2)
  • 收藏
  • 关注

转载 LVDS,CML,LVPECL,VML之间接口电平转换(来自TI文档)

在平时的工作中,经常会接触到各种差分电平的转换,网上也有很多这样的资料,但发现有些混乱,所以找了TI的这份文档进行翻译,一是系统的归类一下,二是自己也能通过这个来加深理解和学习。这个文档对于各个电平的结构讲解的一般,很多是根据TI的器件来说的。但是其后半部分连接方式的讲解是非常有价值的,通过这部分可以从原理上了解匹配和偏置电路的搭建,强烈建议大家一读。1概要      随着通讯速度的提升,

2017-03-23 22:21:24 20759 1

转载 混淆矩阵ConfusionMatrix

Confusion Matrix在机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个clas

2016-09-29 16:34:29 7806

原创 Spark ML函数VectorAssembler

从源数据中提取特征指标数据,这是一个比较典型且通用的步骤,因为我们的原始数据集里,经常会包含一些非指标数据,如 ID,Description 等。为方便后续模型进行特征输入,需要部分列的数据转换为特征向量,并统一命名,VectorAssembler类完成这一任务。VectorAssembler是一个transformer,将多列数据转化为单列的向量列。import org.apache.spark.

2016-09-28 10:09:39 16365

原创 Spark:java.net.URISyntaxException: Relative path in absolute URI: file:D:/XXX/spark-spark-warehouse

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-09-27 16:59:23 3285

原创 机器学习 scikit-learn安装

scikit-learn安装1.Linux平台安装现需要安装在Linux平台安装python 和 pip。然后通过pip安装scikit-learn库pip install numpypip install matplotlib pip install pandaspip install scipy //ubuntu上需要先sudo apt-get install libblas-dev l

2016-08-24 09:27:48 615

转载 ubuntu or debian下安装php mysql apache phpmyadmin

1.开始说明下面很多可能参照网上其中以为前辈的,但有所改进吧。这些设置可能会有所不同,你需要根据不同情况进行修改。安装apache22.切换管理员身份在ubuntu中需要用root身份进行操作,所以用下面的命令确保以root身份登录:sudo su3.开始安装mysql5apt-get install mysql-server mysql-c

2016-04-30 21:58:03 4664

原创 QTcpServer中的incomingConnection函数不执行

之前一个QT socket程序在升级系统后,突然没办法正常工作了。用socket client测试程序,能够连接上tcp server。但是QTcpServer中的incomingConnection函数没有被触发执行。同样的代码在debian7上和windows上都可以执行,但是在debain8就不能正常工作。后来发现,虚函数的incomingConnection的函数参数改变了,有void Tr

2016-04-30 21:47:12 5032 2

原创 自己动手写CPU之计算机体系基础知识

哈佛结构和冯诺依曼结构冯·诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存

2016-04-20 23:13:29 430

转载 Qt 的线程与事件循环

QThread 的使用方法起源        昨天不小心看到Qt开发人员( Bradley T. Hughes)Blog中的一片文章 you are-doing-it-wrong 。 结果看得头昏脑胀:好歹也自学了近1年的Qt,也一直很小心、很认真地阅读Qt和manual和例子等资料,却被突然告知,QThread的正确使用方法是一种自己从没见过,而且Qt manual、ex

2016-03-25 12:57:38 499

原创 Mac配置Qt环境——Could not resolve SDK path for 'macosx10.8'

感觉这个macosx10.8是系统的版本号吧!查看了一下自己系统的版本号,和默认的配置文件,真的不一样。修改配置文件和系统的版本号一样,测试,OK,解决了。根源就在于2个版本号不一致的问题。系统的版本号可以在关于本机中查看。打开文件 Qt5.3 /5.3 /clang_64 /mkspecs /qdevice.pri将文件中!host_build:QMAKE_MAC_SDK = macosx10.8

2016-03-12 10:05:21 1809

原创 Ubuntu 为 root 帐号开启 SSH 登录

1. 修改 root 密码sudo passwd root2. 以其他账户登录,通过 sudo nano 修改 /etc/ssh/sshd_config :xxx@ubuntu14:~$ su - rootPassword:root@ubuntu14:~# vi /etc/ssh/sshd_config3. 注释掉 #PermitRootLogin without-

2016-01-22 16:37:32 448

原创 QSqlDatabase: QMYSQL driver not loaded 解决方法

在Linux下用qt连接mysql数据库时,连接不上数据库,报QSqlDatabase: QMYSQL driver not loaded这个错误。出现这种情况先检查数据库MYSQL有没有正确安装。sudo apt-get install libqt4-sql-mysq或者sudo apt-get install libqt5-sql-mysq 安装qt sql驱动如果还不行,和可能是libm

2016-01-03 19:23:57 1698

原创 QT编译出错解决方法

cannot find -lGL//Solved the problem by installing the “libglu1-mesa-dev” package.sudo apt-get install libglu1-mesa-dev -y

2016-01-03 10:42:35 1571

原创 互联网推送服务原理:长连接+心跳机制(MQTT协议)

互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了,所以才会出现像MQTT这种轻量级低消耗的协议来维护长连接,那么要如何维护长连接呢?  在写之前,我们首先了解一下为什么android维护长连接需要心跳机制,首先我们知道,维护任何一个长连接都

2015-09-19 12:12:19 517

原创 解决Linux 下qt QGroupbox 边框不显示问题

右键改变样式表,添加下面的样式就可以解决了QGroupBox { border: 1px solid gray; border-radius: 9px; margin-top: 0.5em;}QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px;

2015-09-18 10:59:53 2760

原创 Swift 基础知识

字符串Swift 的String类型是值类型。如果您创建了一个新的字符串,那么当其进行常量、变量赋值操作或在函数/方法中传递时,会进行值拷贝。 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作。 Swift 默认字符串拷贝的方式保证了在函数/方法中传递的是字符串的值。 很明显无论该值来自于哪里,都是您独自拥有的。 您可以放心您传递的字符串本身不会被更改。字符串插值字符串插

2015-09-17 13:38:18 376

原创 32/64位平台printf uint64的方法

在32位平台 typedef unsigned long long int uint64_t; 在64位平台 typedef unsigned long int uint64_t; 不同的typdef,要求在printf中使用不同的length modifier,uint64_t 在32位使用ll,在64位使用l。除了定义数据类型,C99还定义了相应数据类型的打印方式,使用PRIu64打印

2015-09-13 20:41:25 1415

原创 Verilog基本知识

Reg寄存器reg型数据常用来表示用于 “always”模块内的指定信号, 常代表触发器。 通常, 在设计中要由“always” 块通过使用行为描述语句来表达逻辑关系。 **在“always”块内被赋值的每一个信号都必须定义成reg 型。**reg型只表示被定义的信号将用在“always”块内,理解这一点很重要。并不是说reg型信号一定是寄 存器或触发器的输出。虽然reg型信号常常是寄存器或触

2015-09-12 22:49:53 707

转载 Android UDP通信

同一套程序在中兴手机和华为手机上可以接收到UDP广播报文,但在HTC手机上却接收不到?问题原因:(仅猜测而已,未经过验证)手机开启UDP广播功能不仅耗电,而且占用系统资源。可能有些手机厂家默认把这个功能给关掉了,你若想要用手机来发送接收UDP报文,得先申请,才能使用这个功能。具体如何申请和释放:1、可先在oncreate()方法里面实例化一个Wi

2015-09-11 19:47:04 830

原创 CC2541蓝牙串口乱码解决

在CC2541蓝牙模块调试过程中,用到了串口模块,但是在串口输出时偶尔会出现乱码,大部分情况数据是正常的。最后通过TI的官方论坛和相关文档,查找到了原因: 原来CC2541在出厂默认情况下,当CC2541的射频工作时,即蓝牙发送或接收数据时,CPU会停机(halt),这是为了减小射频工作时的峰值电流。所以在固件设计时,要进行相应设置,把CC2541在射频工作时CPU halt的功能去掉。可以在初始

2015-09-07 13:58:19 4788

原创 Linux使用wget请求地址时报错

需求:在crontab中使用wget请求某个url地址时,发现如果参数中带有特殊符号“.”的时候会出现此特殊符号后面其他参数被截断导致无法请求例如:http://localhost/projectName?a=aaaa.aaa&b=bbbbb 这里的&b="bbbbb"被截断解决办法:在wget请求时在url上面加上双引号例如:wget "http://lo

2015-08-22 22:05:05 3119 1

转载 Python 中文编码

在python中如果输出中文字符”你好,世界”就有可能会碰到中文编码问题。Python 文件中如果未指定编码,在执行过程会出现报错:#!/usr/bin/pythonprint "你好,世界";以上程序执行输出结果为: File "test.py", line 2SyntaxError: Non-ASCII character '\xe4' in file test.py on line 2,

2015-08-22 14:47:04 418

原创 Android VLC 编译总结

最近在一个项目里需要一个Android APP能够同时播放多路流媒体视频,还需要具有录像、截屏功能。在调研多个方案之后,选择移植VLC播放器。需要在Linux(本人使用Ubuntu 14。10)下编译VLC for Android的源码,根据官方的Wiki,以及自己实际操作的步骤,总结为如下:需要注意的是编译的过程都是普通用户权限,不需要root选项。1. 安装工具sudo apt-get inst

2015-08-21 20:51:38 2055 1

转载 USB协议和UART对比分析

usb作为一种串行接口,应用日益广泛。如同每个工程设计人员必须掌握I2C,RS232这些接口一样,我们也必须掌握usb.但是usb的接口协议实在有点费解,linux uhci驱动作者之一Alan Stern曾经就说过“The USB documentation is downright evil. Most    of it is just crap, written by a commi

2015-08-21 17:50:24 8465 1

原创 Android 内存泄露检测工具 LeakCanary

LeakCanary 是 Android 和 Java 内存泄露检测框架。LeakCanary 可以用更加直白的方式将内存泄露展现在我们的面前。开始使用在 build.gradle 中加入引用,不同的编译使用不同的引用:?1234dependencies {   de

2015-08-20 19:45:09 828

原创 Android 在程序中重启APP的方法

1. 方法一 利用PackageManager类Intent i = getBaseContext().getPackageManager() .getLaunchIntentForPackage( getBaseContext().getPackageName() );i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startAc

2015-08-20 17:01:52 8706 3

原创 Android SDK使用国内镜像站,解决下载速度慢无法更新?

1. 国内android开源镜像站点以下是国内几个比较知名的开源站点,我用的是电子科技大学的镜像源,下载速度非常快。mirrors.neusoft.edu.cn //东软信息学院ubuntu.buct.edu.cn/ubuntu.buct.cn //北京化工大学mirrors.opencas.cn (mirrors.opencas.org/mirrors.opencas.ac.cn) //中国科

2015-08-20 16:45:44 2093 1

转载 让树莓派使用sd卡剩余空间

我的16GB microSD在Windows下使用Win32 Disk Imager下载映像后,在RPi中只能识别出2.9GB,入下图所示。下面我们就来看看怎么将剩余的空间还原出来。命令解释:① 查看当前磁盘大小,总大小只有2.9GB② 查看第二分区的起始地址,后面会用到③ 使用fdisk操作磁盘④ d,删除分区⑤ 2,删除第二分区

2015-07-03 13:07:25 9588 2

转载 Android 如何让EditText不自动获取焦点

在项目中,一进入一个页面, EditText默认就会自动获取焦点。那么如何取消这个默认行为呢? 在网上找了好久,有点 监听软键盘事件,有点 调用 clearFouse()方法,但是测试了都没有! xml中也找不到相应的属性可以关闭这个默认行为 解决之道:在EditText的父级控件中找一个,设置成   android:focusable="true"  

2015-05-05 12:27:45 463

原创 STM8内部EEPROM的使用

EEPROM是单片机应用系统中经常会用到的存储器,它主要用来保存一些掉电后需要保持不变的数据。在以前的单片机系统中,通常都是在单片机外面再扩充一个EEPROM芯片,这种方法除了增加成本外,也降低了可靠性。现在,很多单片机的公司都推出了集成有小容量EEPROM的单片机,这样就方便了使用,降低了成本,提高了可靠性。STM8单片机芯片内部也集成有EEPROM,容量从640字节到2K字节。最为特色的是,在S

2015-04-20 16:43:21 7959

原创 stm32 读写内部Flash

stm32的FLASH分为主存储块和信息块。主存储块用于保存具体的程序代码和用户数据,信息块用于负责由stm32出厂是放置2KB的启动程序(Bootloader)和512B的用户配置信息区。主存储块是以页为单位划分的,一页大小为1KB。范围为从地址0x08000000开始的128KB内。对Flash 的写入操作要 “先擦除后写入”的原则;stm32的内置flash 编程操作都是以页为单位写入的,而写

2015-04-18 14:48:35 3868

转载 Android 编程下设置 Activity 切换动画

为 Activity 设置切换动画我们知道,我们可以在 AndroidManifest.xml 文件中,通过 android:theme 属性设置 Activity 的主题。主题中定义了关于 Activity 外观的很多特性。同时,主题中还可以定义 Activity 的切换动画。这是应用 Activity 切换动画的一种方法。下面讲解一下如何通过主题来设置 Activity 间的切换动

2015-04-16 14:12:07 498

转载 java中byte数组与int类型的转换(两种方式)

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型。下面有两种方式。public static byte[] int2byte(int res) {byte[

2015-04-05 21:11:25 495

原创 Android 下获取视频和图片的缩略图

获取视频缩略图:ThumbnailUtils方式获取 /** * 获取视频的缩略图 必须在2.2及以上版本使用,因为其中使用了ThumbnailUtils这个类  * 先通过ThumbnailUtils来创建一个视频的缩略图,然后再利用ThumbnailUtils来生成指定大小的缩略图。 * 如果想要的缩略图的宽和高都小于MICRO_KIND,则类型

2015-04-05 15:52:04 886

原创 Linux命令 tar 压缩和解压

tar命令详解-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的

2015-01-17 20:41:11 573

原创 Openwrt 编译添加模块 Package

3.  添加模块一般我们需要建立自己的模块(package),在编译固件时可以选择是否将自己的模块编译到固件中去。3.1. 建立package最终helloword文件目录结构为:helloword/├──Makefile└── src ├── helloworld.c └── Makefile在./openwrt/trunk/packa

2015-01-17 15:23:55 5623 1

原创 Openwrt 交叉编译HelloWord

给路由器安装好Openwrt系统后,在上边运行自己编写的程序,一般需要在宿主机器上交叉编译成mips架构的二进制程序,然后拷贝到路由器上运行。1.  搭建交叉编译环境交叉编译需要交叉编译工具链,在编译Openwrt时。交叉编译工具链以及生成了,我们只需要将路径添加到系统环境变量中去。   exportSTAGING_DIR=/path/to/openwrt/trunk/stag

2015-01-17 14:43:21 2458

原创 Openwrt Luci界面开发

Openwrt已经提供了一个很强大的web管理界面Luci,可以方便的管理路由器。我们在开发智能路由器时,一般就需要在OpenWrt的WEB界面增加内容。1.Luci简介LuCI是OpenWrt上的Web管理界面,LuCI采用了MVC三层架构,使用Lua脚本开发,所以开发LuCI的配置界面不需要编辑任何的Html代码,除非想自己单独去创建网页(View层),否则我们基本上只需要修改Mode

2015-01-15 12:20:57 11071

原创 init.d脚本和openwrt程序自启动

1.init.d简介init.d脚本是用来启动一些系统服务或者自己定义的程序的一个脚本。这些脚本可以在系统启动的时候执行。一个简单init.d脚本例子,在/etc/init.d/文件中新建/etc/init.d/example文件,输入:#!/bin/sh /etc/rc.common# Example script# Copyright (C) 2007 OpenWrt.org

2015-01-14 22:29:56 8897

原创 Android 图片添加水印图片或者文字

给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分添加水印图片:private Bitmap createWaterMaskImage(Context gContext, Bitmap src, Bitmap watermark) { String tag = "createBitmap"; Log.d(tag, "create a new bi

2015-01-12 20:41:55 1120

ADC32RFXXEVM参考原理图

ADC32RFXXEVM-SCH_D,

2018-10-21

夏宇闻-Verilog经典教程

夏宇闻-Verilog经典教程,FPGA经典教材

2015-09-16

空空如也

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

TA关注的人

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