开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

ARM嵌入式存储器及半导体存储器

ARM嵌入式存储器及半导体存储器
刘太刚 发布于 3周前 阅读 13

汇编语言-第二章 寄存器(CPU工作原理)

# 概述 一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连接。 内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。 >简单来说,在CPU中: >- 运算器进行信息处理 >- 寄存器进行信息存储 >- 控制器控制各种器件进行工作 >- 内部总线连接各种器件,在它们之间进行数据的传送 寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。 不同的CPU,寄存器的个数、结构是不同的。 # 2.1 通用寄存器 通用寄存器通常用来存放一般性的数据。 # 2.2 字在寄存器中的存储 出于对兼容性的考虑,8086CPU可以一次性处理两种尺寸的数据: >- 字节:记为byte,一个字节由8个比特(即二进制位)组成,可以存在8位寄存器中。 >- 字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节。 # 2.3 几条汇编指令 # 2.4 物理地址 CPU通过地址总线送入存储器的必须是一个内存单元的物理地址。 在CPU向地址总线上发出物理地址之前,必须在内部先形成这个物理地址。 不同的CPU可以有不同的形成物理地址的方式。 # 2.5 16位结构的CPU >16位结构的CPU具有下面几方面的结构特...
Frost729 发布于 3个月前 阅读 377 评论 1

AI领袖、应用指南、窥见风口……你还能从这场全球峰会中获得更多

时代的潮流浩浩荡荡,上升到国家发展战略与基础设施的人工智能,正以不可思议的速度占据着我们生活的头条。如果说2017年宣告了人工智能接棒时代脉搏,那么2018年的人工智能将作为颠覆性变革力量迭代世界机器的运作。
GAITC

STM32 端口复用&重映射(USART Remap)

下面跟大家说一下STM32单片机的端口重映射,因为是以自己为实例.这里是以USART1的重映射为例..         因为我要一个TFT_LCD屏的主控板,考虑到FSMC 我选用了STM32F103VCT6 型号的CPU,一不小心串口接到USART1上了.因为在调程序时才发现错了,没得办法,只能通过端口重映射来解决.但是以前没用过端口重映射,只闻其名,未用其身,所以..呵呵 ...只能从头去看了.          STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别之处就是:很多复用内置的外设的I/O引脚可以通过重映射功能,从不同的I/O管脚引出,即复用功能的引脚是可通过程序改变的.读到这里相信大家都应该了解了端口重映射的一些概念了.原理上的东西不细说了,大家可以看手册或者网上查,这方面的资料还是很多的.下面说说我的调试经历.         不知道是什么原因 PCB制图时把串口接到USART1上了,当时也没在意,等我把USART测试程序写好烧进去硬件仿真时,串口给的是乱码,我当时就觉得奇怪.把程序检查了好几遍就是查不出问题来,以为是硬件有问题,但突然想到了STM有复用功能,...
冷夜杀手 发布于 4个月前 阅读 94

树莓派设置开机自启动的两种方式

可通过两种方式来设置树莓派的开机自启动 一、配置rc.local文件设置树莓派开机启动项 编辑/etc/rc.local文件 sudo vi /etc/rc.local 在文件中的 exit 0 之前添加需要执行的程序,注意要使用绝对路径,如下 python python /home/pi/example.py & exit 0 特别注意,如果程序是阻塞的,则须加上  &   符号以在后台运行,否则系统无法启动 重启系统,就可以生效了 sudo reboot 二、新建desktop文件设置树莓派开机启动项 这种方式类似于Windows系统的“开始”菜单中的“启动”项,操作方法如下: 在 /home/pi/.config 下创建一个文件夹,名称为 autostart mkdir /home/pi/.config/autostart 在该文件夹下创建一个xxx.desktop文件,文件名以.desktop结尾,名称可自定义,文件的内容如下: [Desktop Entry] Name=example Comment=My Python Program Exec=python /home/pi/example.py Icon=/home/pi/example.png Terminal=false MultipleArgs=false Type=Application Categories=Application;Development; StartupNotify=true 该文件中的Name、Comment、Icon分别表示这个启动项目的名称、备注以及显示的图标,具体的值可自行设定;Exec表示调用的指令。 重启系统,就可以生效了 ...
雪饼 发布于 4个月前 阅读 53

浅谈NFC、RFID、红外、蓝牙的区别

很多朋友对NFC和RFID这两个词感到陌生,但是手机经常会出现支持NFC支付,又没太在意,NFC与RFID其实是手机支付的种方式(手机支付也被称作移动支付,是一种允许移动用户使用其移动终端对所消费的商品或服务进行账务支付的服务方式)。   1   NFC手机支付   NFC英文全称Near Field Communication,近距离无线通信。是由飞利浦公司发起,由诺基亚、索尼等著名厂商联合主推的一项无线技术。NFC由非接触式射频识别(RFID)及互联互通技术整合演变而来,在单一芯片上结合感应式读卡器、感应式卡片和点对点的功能,能在短距离内与兼容设备进行识别和数据交换。这项技术最初只是RFID技术和网络技术的简单合并,现在已经演变成一种短距离无线通信技术,发展态势相当迅速。   NFC芯片装在手机上,手机就可以实现小额电子支付和读取其他NFC设备或标签的信息。NFC的短距离交互大大简化整个认证识别过程,使电子设备间互相访问更直接、更清楚。通过NFC,电脑、数码相机、手机、PDA等多个设备之间可以很方便快捷地进行无线连接,进而实现数据交换和服务。   支持NFC的设备可以在主动或被动模式下交换数据。在被动模式下,启动NFC通信的设备,也称为NFC发起设备(主设备),在整个通信...
失败人士 发布于 5个月前 阅读 454 评论 1

Docker是用来干什么的?【快速入门】

Docker从去年开始不仅能在Linux下运行 ,还支持windows、osX等主流系统。 下面的例子我自己经常使用,当然你有更好的案例也可以分享给我。 尝试新软件 对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并进行测试。时间非常宝贵,正是得益于 Docker,让我们有可能在一条或者几条命令内就搭建完环境。Docker 有一个傻瓜化的获取软件的方法,Docker 后台会自动获得环境镜像并且运行环境。 并不仅仅是新技术环境搭建用得到 Docker。如果你想快速在你的笔记本上运行一个 MySQL 数据库,或者一个 Redis 消息队列,那么使用 Docker 便可以非常容易地做到。例如 Docker 只需要一条命令便可以运行 MySQL 数据库: docker run -d -p 3306:3306 tutum/mysql。 译者注:虽然使用命令也能非常快地安装 MySQL 数据库,但是当用到最新的技术或者非常复杂的技术时,使用 Docker 便会是个非常好的选择,例如 : 事件 普通用户 Docker用户 安装Gitlab 一天 一条命令 进行演示 现在我经常需要在周末用自己开发的成果对客户活着别人做一两个演示。搭建演示环境的过程非常麻烦。现在我发现 Docker 已经成为我演示这些工具的最合理的方式。 对...
失败人士 发布于 5个月前 阅读 421 评论 2 点赞 2

【码云周刊第 47 期】6个开源项目提升物联网开发效率

每周为您推送最有价值的开源技术内参!
码云Gitee 发布于 5个月前 阅读 2952 评论 4 点赞 2

借助 frp 随时随地访问自己的树莓派

看了一个[「树莓派」是什么以及普通人怎么玩?] 的高票回答,双十一时间,果断买了一个树莓派 3.周一(11.13) 到的货.我目前只想实现一个简单的功能 -- 想从任意位置访问我的树莓派. 就像一个潘多拉魔盒,第一步肯定是拿到钥匙!
ios122 发布于 5个月前 阅读 214 评论 2

2.树莓派3安装archlinux配置web、samba和aria2

本文永久更新地址:https://my.oschina.net/bysu/blog/1572517 archlinux一些常规配置,请看《1.树莓派3安装archlinux通用配置部分》 1.配置web服务(基于LAMP) 英文文档比较丰富:https://wiki.archlinux.org/index.php/Apache_HTTP_Server 1.1 先安装Apache、PHP pacman -Sy php php-apache php-gd 【上面命令会自动安装Apache、PHP】 先启动一下Apache看报什么错误 [root@alarm alarm]# apachectl AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::ba27:ebff:fe34:38d5. Set the 'ServerName' directive globally to suppress this message 配置apache: vi /etc/httpd/conf/httpd.conf 查找ServerName,会看到#ServerName www.example.com:80。把前面的注释#去掉,然后改成你自己的主机名,如果是本机可以改成: SeverName localhost:80 https://wiki.archlinux.org/index.php/Apache_HTTP_Server 在 /etc/httpd/conf/httpd.conf中找到下面这行,并注释掉: #LoadModule mpm_event_module modules/mod_mpm_event.so 找到下面这行,把前面的#去掉。 LoadModule mpm_prefork_module modules/mod_mpm_prefork.so To ...
不最醉不龟归 发布于 5个月前 阅读 252

Jetson TX2 安装tensorflow

在Jetson TX2上安装tensorflow,需要在源码编译,至少我看到现在的教程都是在源码上编译,编译的时间会很久.  源码编译安装tensorflow可以参考[我另外一个教程](https://my.oschina.net/u/1046919/blog/1154302),这里主要说一些注意要项. ---- **bazel和tensorflow** bazel 和tensorflow的版本注意不要太高,我这里就是bazel和tensorflow的版本选的太高,导致安装完出现问题,虽然不知道是不是依赖没有打完整的缘故,但是在这里还是建议选择低一些的版本. 我这边选择的是bazel-5.4,tensorflow1.3 ---- **内存空间不足** 网上说编译tensorflow可能会出现内存空间不够用的情况,所以需要做一个交换文件,但是实际上我并没有碰到,但是还是记录一下 ``` #Create an 8GB swapfile fallocate -l 8G swapfile #Change permission of the swapfile chmod 600 swapfile #Create swap area mkswap swapfile #Activate the swap area sudo swapon swapfile # deactive the swap are sudo swapoff swapfile #Confirm swap area being used swapon -s ``` ---- **修改tensorflow/stream_executor/cuda/cuda_gpu_executor.cc** 在tensorflow/stream_executor/cuda/cuda_gpu_...
KyJason 发布于 6个月前 阅读 264

Freertos阅读笔记4~ Systick异常处理,任务调度流程

4 freertos任务调度源码分析 freertos之所以能够准确的按照配置的时间片进行任务调度完全依靠硬件支持。硬件上的某个计数器会提供周期性中断,在中断处理中解决任务调度 如:task1切换到task2,task2再切换到task1,如此循环往复,在外部就表现的如同多个任务在一起执行。 在CM3/CM4上有提供内部异常定时器:systick。使用systick作为实时系统的运行心脏再好不过,因为人家的名字就叫做系统滴答定时器,可谓门当户对。其它定时器也可以完成类似功能,因为freertos只关注能否提供周期中断,并不会在意中断产生着是白猫还是黑猫。使用systick的一个好处是在开发低功耗功能时它将不会受到影响。 在调度器启动之前已经使能了systick,systick中断发生后进入xPortSysTickHandler异常。在xPortSysTickHandler中没有发生任务切换,它只是利用xTaskIncrementTick函数处理了readylist与delaylist上的任务结点,需要进行任务切换时会交给pendSV来完成。 (调度器流程图)(拖动放大)   4.1 xTaskIncrementTick 在进入xTaskIncrementTick之前首先屏蔽了中断,防止发生中断嵌套破坏内核链表。 xTaskIncrementTick中率先自增了xTickCount。xTickCount能够准确表示systick发生了多少次...
橘子O 发布于 7个月前 阅读 134

深度解剖~ FreeRtos阅读笔记2 任务创建、内核链表初始化

2.FREERTOS任务创建、内核链表初始化 硬件环境:cortex m4 FreeRTOS版本:v8.0.1 今天开始阅读freertos,阅读同时做下笔记,等哪天碰到移植问题再翻出来看看。   2.1 任务、链表结构体 源码中使用tskTCB来存储一个任务的所有信息,xLIST存储内核链表数据。一个系统最基本的功能是它的任务调度,在任务切换时最重要的则是内核链表,用图描述下这两个结构体,这样看起来比代码更清晰。(TCB中有省略成员) (TCB结构体) -------------------------------------------------分割线---------------------------------------------------- (LIST结构体) 一个TCB中包含了两个xLIST_ITEM作为链表节点,操作xLIST_ITEM中的指针指向既为控制一个任务进出某个链表。相比xLIST_ITEM,在xLIST中使用了精简版的结点xMINI_LIST_ITEM。   2.2 xTaskGeneEricCreate 任务创建流程分析 xTaskGeneEricCreate 函数用来创建一个新任务,在调度器启动前和启动后都可以创建。 Freertos在调度器启动后至少会有一个任务(IDLE)处于准备调度状态,即使开发者不去创建自己的任务。 xTaskGeneEricCreate源码流程:(拖动可以放大图片) (任务创建流程图)   2.2.1 prvAllocateTCBAndStack 分配空间 Free...
橘子O 发布于 7个月前 阅读 126 评论 2

深度解剖~ FreeRtos阅读笔记1

上帝不仅给了我一颗低频的cpu还送了个劣质的晶振,可悲可叹!无奈在家休养,不然的话晶振偷停我可就驾鹤西去了。。。不过这也是个好机会,在家靠着窗户晒着太阳,偶尔读读源码,都很好。就是工资没了~   接连几个项目都使用了freertos,作为刚刚毕业一张白纸的我只能先去摸索一些api怎么去调用,需要填入哪些参数,才能达到自己的目的。程序不出问题就完事大吉了,不过稍有异常出现例如某个任务莫名奇妙的被挂起,超出预想,只凭借对api的了解很难追查问题的根源,所以我决定适当深入了解下freertos,顺便学习下大神们的编码风格,免得光头强总说:看你的代码像吃屎。我觉得看一些源码至少能给屎加点孜然。。。 上电复位 要让FreeRtos跑起来,首先要。。。给板子上电! 接触了一些芯片,发现它们都是将初始的异常向量表放在自己flash(也有可能是rom)的0地址,芯片上电复位在0地址,0地址开始的四个字节存放运行栈地址,紧跟着4字节是复位后要执行的第一行代码的地址(bootloader),引用一张cortexM3指南的一张图片:   要执行的第一行代码一般是汇编实现的初始化工作,因为此时并没有对MSP进行配置,所以还不具备C运行环境,因此这些工作只能由汇编来代替:初始化内存...
橘子O 发布于 7个月前 阅读 78 评论 1 点赞 1

Linux中WIFI功能工具与操作

当设备支持wifi功能时,在嵌入式linux开发中经常使用wireless tools和wpa_supplicant工具来管理和配置wifi功能与参数,本文简要介绍wifi操作的这些工具。
水海云 发布于 8个月前 阅读 155

小米温湿度传感器协议分析后续

博主上一编博文分析了小米的温湿度协议,提出了些疑问,本期解答
临峰不畏 发布于 10个月前 阅读 946 评论 4 点赞 1

在MicroPython中用面向对象方法控制microbit显示

据拉里·沃尔(一位非常著名的程序员)说,懒惰是一种美德。懒惰的程序员提出节省劳力的解决方案。 如果你想节省自己和别人的时间,让micropython代码易于重复使用、阅读。 本文假设您已经熟悉对象、类和组合的概念,并且知道如何用Python编写类定义。如果您不熟悉Python的对象定位(O O),您可能会发现代码很难遵循。我在本文后面对O作了简短的介绍。 有几种学习Python的方法。这里有一个“官方”教程,但是我不确定初学者是否会觉得很容易理解。有一本看起来不错的书。它需要大量的时间和金钱投入,但是我认为如果你需要提高你的Python技能是值得的。 我可能会着手写我自己的介绍,但这是一个重大项目,需要一段时间。现在,即使您不熟悉O,也应该能够跟踪大多数文章并运行示例代码。 Python(micropython)对物理计算非常有用   Python是当之无愧的物理计算应用中一个非常流行的语言。 Python很容易学习,它很有表现力,可以在Linux、Mac OS和微软Windows上免费使用。 Python让树莓派充满活力,大量代码树莓派的代码都是用Python实现的。 最近,micropython带来了语言的几个流行的单片机平台,包括BBC microbit。 但… 大多数已发表micropython脚本使用Python程序风格...
shaoziyang 发布于 10个月前 阅读 259

小米温湿度传感器协议分析

家里部署了简单的智能家居系统,买了个小米的温湿度传感器,尝试将其接入到自己&...
临峰不畏 发布于 10个月前 阅读 1066 评论 3 点赞 3

用官方的SSD1306.py 驱动 OLED

这几天看了一下micropython的I2C OLED驱动(SPI的类似),发现有几个版本。一个是官方的版本,还有早期网上流传的版本。 网上的版本使用了pyb.I2C驱动,是将Arduino的OLED驱动移植过来,只能用在STM32上;而官方的驱动使用了machine.I2C,这样有更好的兼容性,适合不同的硬件平台,还可以用软件I2C。 因为没有看到有人介绍官方的SSD1306驱动,所以我就简单的介绍一下I2C接口的OLED使用方法,SPI的也是类似的。下面以比较常见的0.96寸的128x64 I2C OLED为例: 从github下载micropython的源码(或者只下载其中的ssd1306.py文件),然后将ssd1306.py复制到PYB Nano或其它micropython板 连接I2C和电源到I2C的OLED上,如果没有硬件I2C,使用任意GPIO也可以。 在终端里输入下面代码 from machine import I2C i2c=machine.I2C(-1, sda=machine.Pin("PB9"), scl=machine.Pin("PB8"), freq=400000)   from ssd1306 import SSD1306_I2C oled = SSD1306_I2C(128, 64, i2c) oled.text("Hello PYB Nano", 0, 0) oled.show() 如果可以看到Hello这一段文字,就说明驱动成功了。   SSD1306.py中带有的函数不多,主要函数有: text(string, x, y),在(x, y)处显示字符串,注意text()函数...
shaoziyang 发布于 1年前 阅读 147 点赞 1

MicroPython开发板大盘点:你想要的开发板都在这里了!

MicroPython是在单片机上跑的Python。官方的开发板是PYBoard,但是这个板子比较少见,价格也比较贵。幸好MicroPython支持多种开发板,我们可以在其他开发板上很好的运行MicroPython,效果是一样的。下面是MicroPython支持的一些常见开发板
bodasisiter 发布于 1年前 阅读 508 评论 4 点赞 1

关于MicroPython是否可以真正用在产品开发的讨论

这几天,在MicroPython官方论坛上,发起了关于MicroPython是否可以真正用在产品开发上(Is MicroPython ready for real world deployment)的讨论,非常有趣。我觉得值得大家看看,所以简单的翻译和整理了一下。 问: If I wanted to deploy a large number of devices and have them run reliably, would MicroPython be a risky choice? 在设备上运行MicroPython是否可靠? 答: We are using Micropython in several projects (medical & industrial certified measurement equipment) for ~2 years. It was a bold decision, but it already paid off. 有网友回答说:我们在多个项目中(医疗和工业测量认证设备)使用Micropython超高2年了。这是一个大胆的决定,但是它已经得到了回报。 坏处: 提升了硬件资源需求 缺乏面向对象的编程技能 好处 开发效率 可追溯性 可测试性 可移植性 许可和支持(开源) 问: don't the other benefits  exist for C/C++ (with or without an widely used OS/RTOS) ? e.g. clang or gcc, FreeRTOS, etc? 是否有其他类似C/C++的功能?如 clang或gcc、FreeRTOS等 答: MPY outperforms all the tools we know (even the ones we can't af...
shaoziyang 发布于 1年前 阅读 281 评论 4 点赞 1

no definition for "__iar_program_start" [program entry]

```shell Error[Li005]: no definition for "resetHandler" [program entry] Fatal Error[Lp049]: there was no reference to __iar_data_init3, but it is needed to initialize section .bss (main.o #9) ``` ## 工具 IAR ## 起因 今天编译工程的时候,突然发现工程编译不了了,不管怎么Clean,rebuild都没用,但实际,上周六编译的都还正常。工程是别人写的,刚接手不是很熟。 ## 真理探寻 实在没辙,只能从报错信息开始了,no definition for "resetHandler”,百度一下,但网上找到的都是no definition for "Reset_Handler",跟我的resetHandler有差别,于是看了下Reset_Handler相关的信息,有人提到IAR中的一个设置,Options->Linker->Library->Override default program entry,我看了下我项目的的设置,如下图 ![输入图片说明](https://static.oschina.net/uploads/img/201804/01085354_iD1J.png "在这里输入图片标题") 果然resethandle在这里。按IAR最初的设置应该是这样的 ![输入图片说明](https://static.oschina.net/uploads/img/201804/01085520_G1F8.png "在这里输入图片标题") 也就是这里应该是设置IAR启动函数的,然后我们的项目把这个函数进行了修改,于是...
yxmsw2007 发布于 4周前 阅读 13

STM32中I/O输入输出模式的个人浅见-输出部分

Cortex-M3里,对于GPIO的配置种类有8种,输入输出模式各有四种。 输出模式: 1.GPIO_Mode_Out_OD 开漏输出 2.GPIO_Mode_Out_PP 推挽输出 3.GPIO_Mode_AF_OD 复用开漏输出  4.GPIO_Mode_AF_PP 复用推挽输出 输入模式: 1.GPIO_Mode_AIN 模拟输入  2.GPIO_Mode_IN_FLOATING 浮空输入 3.GPIO_Mode_IPD 下拉输入 4.GPIO_Mode_IPU 上拉输入 I/O输出指的是STM32对“外部”(相对于STM32I/O口的外部,可看成芯片的外部)驱动硬件,可以理解成对外部输出高低电平,不同的模式只是在输出电平的方式上各有不同。 开漏输出(Open Collector Output):其中的“漏”级(Drain)指的是场效应管的漏级,相当于三极管的集电极(Collector)。则“开漏输出”的含义很明显:使用三极管的集电极或场效应晶体管MOSFET的漏级作为输出端,输出高电平时需要在集电极增加上拉电阻拉高输出电位(此时三极管工作在放大状态)。 由三极管电流放大特性(小电流控制大电流)可以知道该种输出方式适合作为电流型驱动,从负载抽取电流的能力相对较强(20mA左右)。 推挽输出(Push-pull Output):推挽结构一般是指两个三极管分别受两个互补信号的控制,一个晶体管的发射级和另一个晶体管的集电极连接作...
JustinF 发布于 2个月前 阅读 24

树莓派raspberry 3B 安装selenium和iceweasel(firefox)

目的是打算用python控制浏览器。把整个过程记录下来,希望能给大家节省时间。 最折腾人的,就是各种软件的版本了吧。 先上个软件版本: 树莓派3B iceweasel 52+selenium 3.3 +geckodriver 15.0 python2.7 firefox在树莓派中,名称为iceweasel。iceweasel,selenium,geckodriver均有版本对应关系,其中一个搞错,很可能就报错。 过程 安装前 得先apt-get update下 sudo apt-get update   安装iceweasel(firefox)  sudo apt-get install iceweasel 查看iceweasel的版本,确保是52的 iceweasel -version 我的是52.7.3   下载驱动geckodriver 对于52.7.3的iceweasel,江湖传说得配0.15.0版本的geckodriver:下载地址  这里要注意选择arm的编译版本  下载下来后,对其进行解压缩,得到geckodriver文件,将此文件的权限,设置为777 sudo chmod -R 777 geckodriver 将geckodeiver文件,移动到环境变量/usr/local/bin目录下   安装selenium Selenium的版本要3.3以上才可以。我们就用3.3吧,防止出什么幺蛾子 sudo pip install selenium==3.3   准备代码 这样安装就完成了,下面我们来准备python测试的代码: from selenium import webdriver browser = webdriver.Fire...
乐_然 发布于 3周前 阅读 24

FPGA Verilog 实现 3-8译码器

3个按键,按下任意开关 一个也不按到全部按下,8种可能 一个灯不亮到7号灯亮,8种可能   .ucf 配置文件 NET "ext_clk_25m" LOC = P23 | IOSTANDARD = LVCMOS33; NET "ext_rst_n" LOC = P24 | IOSTANDARD = LVCMOS33; NET "led[0]" LOC=P17 | IOSTANDARD = LVCMOS33; NET "led[1]" LOC=P16 | IOSTANDARD = LVCMOS33; NET "led[2]" LOC=P15 | IOSTANDARD = LVCMOS33; NET "led[3]" LOC=P14 | IOSTANDARD = LVCMOS33; NET "led[4]" LOC=P12 | IOSTANDARD = LVCMOS33; NET "led[5]" LOC=P11 | IOSTANDARD = LVCMOS33; NET "led[6]" LOC=P10 | IOSTANDARD = LVCMOS33; NET "led[7]" LOC=P9 | IOSTANDARD = LVCMOS33; NET "switch[0]" LOC=P29 | IOSTANDARD = LVCMOS33; NET "switch[1]" LOC=P30 | IOSTANDARD = LVCMOS33; NET "switch[2]" LOC=P32 | IOSTANDARD = LVCMOS33; .v 文件 module sp6( input ext_clk_25m, //外部输入25MHz时钟信号 input ext_rst_n, //外部输入复位信号,低电平有效 input[3:0] switch, //4个拨码开关接口,ON -- 低电平;OFF -- 高电平 output reg[7:0] led //8个LED指示灯接口 ...
李春利 发布于 3周前 阅读 16

汇编语言-第二章 寄存器(CPU工作原理)

# 概述 一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连接。 内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。 >简单来说,在CPU中: >- 运算器进行信息处理 >- 寄存器进行信息存储 >- 控制器控制各种器件进行工作 >- 内部总线连接各种器件,在它们之间进行数据的传送 寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。 不同的CPU,寄存器的个数、结构是不同的。 # 2.1 通用寄存器 通用寄存器通常用来存放一般性的数据。 # 2.2 字在寄存器中的存储 出于对兼容性的考虑,8086CPU可以一次性处理两种尺寸的数据: >- 字节:记为byte,一个字节由8个比特(即二进制位)组成,可以存在8位寄存器中。 >- 字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节。 # 2.3 几条汇编指令 # 2.4 物理地址 CPU通过地址总线送入存储器的必须是一个内存单元的物理地址。 在CPU向地址总线上发出物理地址之前,必须在内部先形成这个物理地址。 不同的CPU可以有不同的形成物理地址的方式。 # 2.5 16位结构的CPU >16位结构的CPU具有下面几方面的结构特...
Frost729 发布于 3个月前 阅读 377 评论 1

AI摄影,华为P20 Pro让每一拍都是大片

## 前所未见,4000万徕卡三镜头 HUAWEI P20 Pro徕卡三镜头,成就每个瞬间,表现浓郁的徕卡德味色彩。 ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a782be861a27?w=1080&h=359&f=jpeg&s=22058) ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a784cf07a758?w=1080&h=359&f=jpeg&s=22349) ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a785de6d867a?w=1080&h=810&f=jpeg&s=76171) ## 无惧暗夜,自成光芒 HUAWEI P20 Pro配置f/1.8+f/1.6+f/2.4大光圈,最高支持ISO 102400,在极暗环境下也能捕捉到清晰画面。逆光拍摄,高光不溢出,暗处有细节。 ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a7942b77c161?w=1080&h=810&f=jpeg&s=73107) ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a7961ce3bbbf?w=1080&h=810&f=jpeg&s=158301) 华为AIS防抖技术加持,夜景模式,拍出晚美。 ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a7a6f834c2df?w=1080&h=810&f=jpeg&s=125479) ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a7a88b5caee6?w=1080&h=810&f=jpeg&s=52123) ## 再远,也在眼前 HUAWEI P20 Pro支持3倍光学变焦,5倍三摄变焦,10倍数字变焦,...
华为终端开放实验室 发布于 1个月前 阅读 46

斐讯 K3 A1 刷机经历

手残把 K3 升级了 21.6.11.58,所以经历了一些额外的步骤。 首先,众所周知路由器厂商升级都是为了封堵刷第三方的能力,所以在不使用 TTL 的情况下,必然考虑降级。 逛恩山论坛,发现了这篇好文 [[20180128] K3_V21.6.11.58 简单降级大招,直刷降级,最新出笼!](http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=304185)。这里需要提醒的是,似乎只能使用作者配套的 21.5.37.246 官方版,无法直刷 root 版或者其他版本。 这里提一下 CFE 模式,可以说是官方提供的刷机工具。进入方式是:在关机状态下,按住 RESET 开机并保持 5s,检查方法是:Windows 打开 cmd,输入命令 `ping 192.168.2.1 -t`,若 TTL=64 说明是普通模式,若 TTL=100 说明是 CFE 模式。 出厂版本 V21.4.31.212、V21.4.33.217、V21.5.37.246 集成的 CFE 编译日期是3月10日,新出厂版本 V21.5.39.260 集成的 CFE 编译日期是8月2日,斐讯封堵了CFE网页执行命令,而且固件采用公私钥验证,因此通过 CFE 手动执行命令刷第三方包的方式被堵死了。 普通模式下只能升级刷包,CFE 下可以降级刷包,因此从 21.6.11.58 到 21.6.11.58p 可以在普通模式下进行,而 21.6.11.58p 到 21.5.37.246 是在 CFE ...
傅易 发布于 2个月前 阅读 740

树莓派3B安装3.5寸触摸屏驱动

我买的3.5寸触摸屏如下: 请对应硬件。 硬件安装: 将树莓派关机,断电,把屏幕插入树莓派相对应的端口 安装驱动 下载驱动到/boot文件 方法一: 将SD卡插到电脑上,然后将此文件下载后,放到SD卡根目录。 树莓派LCD驱动:171219,适用于2017-03-02-raspbian-jessie及之后版本的Raspbian(注:该驱动安装时,必须联网) 这样此文件就位于/boot目录下了 方法二: 在树莓派上,切换到/boot目录 然后用wget直接下载到本地 cd /boot sudo wget www.waveshare.net/w/upload/9/99/LCD-show-171219.tar.gz 方法三: 有文章提到git上也有驱动的文件,可以使用git去下载,地址是:https://github.com/goodtft/LCD-show 可以使用: cd /boot sudo git https://github.com/goodtft/LCD-show.git 此种方法我这边因为网络问题,没有尝试。理论上可以获得最新的驱动。 确保下载到/boot目录后,切换到/boot下 cd /boot tar xzvf /boot/LCD-show-171219.tar.gz cd LCD-show/ chmod +x LCD35-show ./LCD35-show 若是通过git方法下载的,就没必要tar解压缩了。 使用方法: LCD/HDMI切换 cd LCD-show  执行sudo ./LCD-hdmi cd LCD-show  执行sudo ./LCD35-show   安装完触摸驱动后,可以通过...
乐_然 发布于 1个月前 阅读 79

树莓派3b pyhon3.5 安装opencv3.1全纪录

整整搞了一天,参考了好多文章,其实大致的思路都差不多,但是很多细节方面,还是有非常大的坑,记录一下,希望能帮到大家。 提醒:先确保有足够大的空间,最好要预留3,4G的剩余空间吧。 安装依赖包 老步骤,在进行软件安装之前首先要更新一下现有的软件包: sudo apt-get update   sudo apt-get upgrade  #更新系统,慎重选择 注意:apt-get update 你要做一下,但是apt-get upgrade除非你安装不成功,否则不要运行,时间有可能会很长... 安装cmake: sudo apt-get install build-essential cmake pkg-config   安装各种图像格式的包: sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev   安装视频I/O包: sudo apt-get install libavcodec-dev libavformat-dev libswcale-dev libv4l-dev   sudo apt-get install libxvidcore-dev libx264-dev   安装GTK开发库: sudo apt-get install libgtk2.0-dev   再安装几个依赖关系进一步优化OpenCV: sudo apt-get install libatlas-base-dev gfortran 确认下python开发环境的安装(可以不做): sudo apt-get install python2.7-dev python3-dev  ...
乐_然 发布于 2个月前 阅读 301

开源版-在线客服系统源码_网页聊天室源码_webim

开源版在线客服系统源码,聊天室源码,网页客服系统,webim,详情请咨询。
suanleba 发布于 2周前 阅读 37

ESP8266-F ets Jan 8 2013,rst cause:1, boot mode:(3,6)无法运行问题

```shell ets Jan 8 2013,rst cause:1, boot mode:(3,6) load 0x40100000, len 2592, room 16 tail 0 chksum 0xef load 0x00000000, len 0, room 8 tail 0 chksum 0xef load 0x00000000, len 0, room 0 tail 0 chksum 0xef csum 0xef csum err ets_main.c ``` ## 起因 最近在做智能硬件相关的东西,手里有个ESP8266-F芯片,于是就按官方的文档开始了[2a-esp8266-sdk_getting_started_guide_cn.pdf](https://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_cn.pdf) ## 芯片资料 模块型号示意图 ![输入图片说明](https://static.oschina.net/uploads/img/201803/18171137_PGzg.png "在这里输入图片标题") 模块管脚定义示意图 ![输入图片说明](https://static.oschina.net/uploads/img/201804/01075149_dnuZ.png "在这里输入图片标题") GPIO模式定义 ![输入图片说明](https://static.oschina.net/uploads/img/201803/18171239_ATWU.png "在这里输入图片标题") 参考手册,GPIO15接地,GPIO2接3.3V,使能脚EN拉高,然后控制GPIO0的高低电平进入烧录模式还是运行模式,Flash Boot模式就是正常运行模式。 > 关于如何生成user1.bin和u...
yxmsw2007 发布于 1个月前 阅读 248

FS4412开发板使用Linux IIO驱动框架实现ADC驱动

### 1.概述 FS4412开发板有一个4通道(0/1/2)、10/12比特精度的 ADC ,其中: - 1)ADCIN0: 在核心板中引出 - 2)ADCIN1: 在核心板中引出 - 3)ADCIN2: 在核心板中引出 - 4)ADCIN3: 连接开发板的VR1电位器 本文主要介绍基于IIO驱动框架的ADC的简单实现方法。 ### 配置DTS节点 FS4412 ADC 的 DTS 节点在 kernel/arch/arm/boot/dts/exynos4412-fs4412.dts 文件中添加如下定义: ``` adc: adc@12C60000 { compatible = "samsung,exynos-adc-fs4412"; reg = <0x126C0000 0x100>, <0x10020718 0x4>; clocks = <&clock 303>; clock-names = "adc"; #io-channel-cells = <1>; io-channel-ranges; status = "okay"; }; ``` ### 编写驱动 ADC 的驱动源码为 fs4412_adc.c ### 定义 ADC 通道 可用的通道列表在 fs4412_adc.c 中定义: ``` #define ADC_CHANNEL(_index, _id) { \ .type = IIO_VOLTAGE, \ .indexed = 1, \ .channel = _index, \ .address = _index, \ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ .datasheet_name = _id, \ } /* 通道信息 */ static const struct iio_chan_spec fs4412_adc_iio_channels[] = { ADC_CHANNEL(0, "adc0"), ADC_CHANNEL(1, "adc1"), ADC_C...
LvSin 发布于 2个月前 阅读 67

按键轮询算法(含短按和长按功能)

按键轮询算法,含长按短按功能,本算法需要使用到之前发布的软件定时器算法来获取系统时间。 - commKey.h ``` #ifndef _COMM_KEY_H_ #define _COMM_KEY_H_ #include "timer_callback.h" #define COMM_KEY_UP 1 #define COMM_KEY_DOWN 0 typedef int(*key_callback_func)(void*); typedef enum { COMM_KEY_IDLE_STATUS =4, COMM_KEY_DOWN_STATUS =0, COMM_KEY_DOWN_SURE_STATUS =5, COMM_KEY_UP_STATUS =6, COMM_KEY_UP_SURE_STATUS =1, COMM_KEY_SHORT_PRESS =2, COMM_KEY_LONG_PRESS =3 }comm_key_status; typedef struct{ /*获取按键状态*/ key_callback_func key_status_get_func; /*短按回调函数*/ key_callback_func key_short_press_func; /*长按回调函数*/ key_callback_func key_long_press_func; /*短按时间*/ unsigned int short_press_time; /*长按时间*/ unsigned int long_press_time; /*消抖时间*/ unsigned int shake_time; /*消抖计时器*/ TICK shake_timer; /*按下计时器*/ TICK key_timer; /*按键号*/ unsigned char key_index; /*按键状态*/ comm_key_status key_status; }comm_key_info; typedef struct comm_key_list{ comm_key_info key; struct co...
猎人嘻嘻哈哈的 发布于 2个月前 阅读 13

idea 配置svn 及使用

idea,svn
走世界 发布于 1个月前 阅读 10

ARM嵌入式存储器及半导体存储器

ARM嵌入式存储器及半导体存储器
刘太刚 发布于 3周前 阅读 13

omxplayer操作界面tboplayer的安装和使用

omxplayer是树莓派系统下播放视频音频的软件,不过是命令行形式的,用起来有点不方便,在网上发现了一个GUI界面操作的开源软件tboplayer,调用的就是omxplayer。我们来介绍下安装: 安装 首先确保omxplayer是可以用的(可以直接在命令行输入omxplayer命令,若有命令帮助提示,表示系统已经安装了omxplayer)。 需要安装的是omxplayer播放器的依赖的库文件: wget http://pexpect.sourceforge.net/pexpect-2.3.tar.gz tar xzf pexpect-2.3.tar.gz cd pexpect-2.3 sudo python ./setup.py install cd .. 接下来安装GUI的图形软件: git clone https://github.com/KenT2/tboplayer.git cd tboplayer sudo ./setup.sh (ps上面这一步骤,不知道为嘛,很多教程都忽略了执行setup.sh安装,实际上忽略这一步,根本运行不了,会有各种包提示找不到。) 等待安装完成之后,在命令行输入tboplayer命令或者菜单栏打开tboplayer图标 tboplayer 就能看到下面的GUI播放器界面: 报错的解决 可能安装完成后,发现点击tboplayer没有任何反应,使用命令行运行会报错: 原因是python环境没有安装python-magic模块,解决方法:命令行输入 pip install python-magic 安装完成后,就可以了。 如何...
乐_然 发布于 2个月前 阅读 45

使用teamviewer树莓派远程控制树莓派

使用teamviewer树莓派远程控制树莓派
刘太刚 发布于 2周前 阅读 25

树莓派开启VNC,电脑远程实时操控树莓派桌面

一般远程控制树莓派,命令行使用SSH服务,但是有的时候,我们想远程控制树莓派的桌面。这时就要启用VNC了。 1.在树莓派上开启VNC服务: 这样在树莓派上就开启了VNC服务,开启成功后,在桌面右上角会出现VNC的图标 点击图标,出现的界面上,有树莓派的IP地址。我们在客户端的VNC Viewer软件,使用IP地址,用户名和密码,就能登录并且控制了。 2.电脑端安装远程控制软件: 安装VNC Viewer。百度找一下吧。安装的时候注意,会提醒你安装哪些组件,只需要选择viewer就行。 安装完成后,打开软件 输入IP 树莓派登录的用户名和密码 然后就能看到桌面并且能控制啦,局域网内速度和延迟都还不错。
乐_然 发布于 2个月前 阅读 27

oneDevice.js - 用NodeJS驱动硬件的驱动包

oneDevice.js 用NodeJS驱动硬件。 这是什么? 这是一个旨在用NodeJS驱动硬件的驱动包。开箱即用、完善的文档、持续更新、友好的API。用树莓派打造自己的智能家居。 我对智能家居非常感兴趣,并一直想要自己定制化diy,用智能化设备控制家里的一切设备。所以有了这个,是我一直在用的,我会持续的集成更多型号的硬件驱动和传感器,和更多抽象的接口。 DIY,个性化,定制化,完全可控是oneDevice的核心。   完整文档请查看npm或GitHub: 码云地址:https://gitee.com/onedevice/oneDevice npm地址:https://www.npmjs.com/package/onedevice GitHub地址:https://github.com/LanFly/Device 后续主要更新 增加更多型号硬件驱动 更抽象的API,一句自然语言完成条件监控、动作触发 更容易阅读的文档 更新日志 v0.0.2 @ 2018-04-22 17:19 SSD1306新增showSystemInfo函数,用于监控系统信息。 直接调用showSystemInfo即可在屏幕上面显示内存、CPU统计信息、IP、时间。 stopSystemInfo函数用于停止刷新系统监控信息。 增加GPIO引脚参考图,用于查阅树莓派引脚编号和功能。 v0.0.1 @ 2018-01-01 23:27 增加讯飞XFS5152CE文字转语音芯片的驱动 增加SSD1306 OLED屏幕的驱动。 支持在S...
LanFly 发布于 4天前 阅读 15 评论 3

树莓派下功能比较全的播放器:SMPlayer

之前一直在找树莓派3下,功能比较全的播放器,现在找到了一款SMPlayer,试用了下,感觉还可以。 我大概简单用了下 优点: 有界面,功能全 目录下双击就能播放 设置项也比较多 缺点: 我看视频喜欢加速播放,这款播放器加速播放,有些情况下语调会很奇怪.... 占用资源较多 卡...好多视频都莫名的卡顿 播放比屏幕分辨率大的视频,会裁剪画面.... 安装: sudo apt-get install mplayer sudo apt-get install smplayer    视频无法填满屏幕或者分辨率比较高的视频出现剪裁的情况: 解决方法: 关掉mplayer  终端--  sudo vi /etc/mplayer/mplayer.conf  找到#zoom = yes 行去掉前边的#  保存 
乐_然 发布于 2个月前 阅读 82

树莓派3b pyhon3.5 安装opencv3.1全纪录

整整搞了一天,参考了好多文章,其实大致的思路都差不多,但是很多细节方面,还是有非常大的坑,记录一下,希望能帮到大家。 提醒:先确保有足够大的空间,最好要预留3,4G的剩余空间吧。 安装依赖包 老步骤,在进行软件安装之前首先要更新一下现有的软件包: sudo apt-get update   sudo apt-get upgrade  #更新系统,慎重选择 注意:apt-get update 你要做一下,但是apt-get upgrade除非你安装不成功,否则不要运行,时间有可能会很长... 安装cmake: sudo apt-get install build-essential cmake pkg-config   安装各种图像格式的包: sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev   安装视频I/O包: sudo apt-get install libavcodec-dev libavformat-dev libswcale-dev libv4l-dev   sudo apt-get install libxvidcore-dev libx264-dev   安装GTK开发库: sudo apt-get install libgtk2.0-dev   再安装几个依赖关系进一步优化OpenCV: sudo apt-get install libatlas-base-dev gfortran 确认下python开发环境的安装(可以不做): sudo apt-get install python2.7-dev python3-dev  ...
乐_然 发布于 2个月前 阅读 301

斐讯 K3 A1 刷机经历

手残把 K3 升级了 21.6.11.58,所以经历了一些额外的步骤。 首先,众所周知路由器厂商升级都是为了封堵刷第三方的能力,所以在不使用 TTL 的情况下,必然考虑降级。 逛恩山论坛,发现了这篇好文 [[20180128] K3_V21.6.11.58 简单降级大招,直刷降级,最新出笼!](http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=304185)。这里需要提醒的是,似乎只能使用作者配套的 21.5.37.246 官方版,无法直刷 root 版或者其他版本。 这里提一下 CFE 模式,可以说是官方提供的刷机工具。进入方式是:在关机状态下,按住 RESET 开机并保持 5s,检查方法是:Windows 打开 cmd,输入命令 `ping 192.168.2.1 -t`,若 TTL=64 说明是普通模式,若 TTL=100 说明是 CFE 模式。 出厂版本 V21.4.31.212、V21.4.33.217、V21.5.37.246 集成的 CFE 编译日期是3月10日,新出厂版本 V21.5.39.260 集成的 CFE 编译日期是8月2日,斐讯封堵了CFE网页执行命令,而且固件采用公私钥验证,因此通过 CFE 手动执行命令刷第三方包的方式被堵死了。 普通模式下只能升级刷包,CFE 下可以降级刷包,因此从 21.6.11.58 到 21.6.11.58p 可以在普通模式下进行,而 21.6.11.58p 到 21.5.37.246 是在 CFE ...
傅易 发布于 2个月前 阅读 740

ESP8266-F ets Jan 8 2013,rst cause:1, boot mode:(3,6)无法运行问题

```shell ets Jan 8 2013,rst cause:1, boot mode:(3,6) load 0x40100000, len 2592, room 16 tail 0 chksum 0xef load 0x00000000, len 0, room 8 tail 0 chksum 0xef load 0x00000000, len 0, room 0 tail 0 chksum 0xef csum 0xef csum err ets_main.c ``` ## 起因 最近在做智能硬件相关的东西,手里有个ESP8266-F芯片,于是就按官方的文档开始了[2a-esp8266-sdk_getting_started_guide_cn.pdf](https://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_cn.pdf) ## 芯片资料 模块型号示意图 ![输入图片说明](https://static.oschina.net/uploads/img/201803/18171137_PGzg.png "在这里输入图片标题") 模块管脚定义示意图 ![输入图片说明](https://static.oschina.net/uploads/img/201804/01075149_dnuZ.png "在这里输入图片标题") GPIO模式定义 ![输入图片说明](https://static.oschina.net/uploads/img/201803/18171239_ATWU.png "在这里输入图片标题") 参考手册,GPIO15接地,GPIO2接3.3V,使能脚EN拉高,然后控制GPIO0的高低电平进入烧录模式还是运行模式,Flash Boot模式就是正常运行模式。 > 关于如何生成user1.bin和u...
yxmsw2007 发布于 1个月前 阅读 248

树莓派3B安装3.5寸触摸屏驱动

我买的3.5寸触摸屏如下: 请对应硬件。 硬件安装: 将树莓派关机,断电,把屏幕插入树莓派相对应的端口 安装驱动 下载驱动到/boot文件 方法一: 将SD卡插到电脑上,然后将此文件下载后,放到SD卡根目录。 树莓派LCD驱动:171219,适用于2017-03-02-raspbian-jessie及之后版本的Raspbian(注:该驱动安装时,必须联网) 这样此文件就位于/boot目录下了 方法二: 在树莓派上,切换到/boot目录 然后用wget直接下载到本地 cd /boot sudo wget www.waveshare.net/w/upload/9/99/LCD-show-171219.tar.gz 方法三: 有文章提到git上也有驱动的文件,可以使用git去下载,地址是:https://github.com/goodtft/LCD-show 可以使用: cd /boot sudo git https://github.com/goodtft/LCD-show.git 此种方法我这边因为网络问题,没有尝试。理论上可以获得最新的驱动。 确保下载到/boot目录后,切换到/boot下 cd /boot tar xzvf /boot/LCD-show-171219.tar.gz cd LCD-show/ chmod +x LCD35-show ./LCD35-show 若是通过git方法下载的,就没必要tar解压缩了。 使用方法: LCD/HDMI切换 cd LCD-show  执行sudo ./LCD-hdmi cd LCD-show  执行sudo ./LCD35-show   安装完触摸驱动后,可以通过...
乐_然 发布于 1个月前 阅读 79

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

FS4412开发板使用Linux IIO驱动框架实现ADC驱动

### 1.概述 FS4412开发板有一个4通道(0/1/2)、10/12比特精度的 ADC ,其中: - 1)ADCIN0: 在核心板中引出 - 2)ADCIN1: 在核心板中引出 - 3)ADCIN2: 在核心板中引出 - 4)ADCIN3: 连接开发板的VR1电位器 本文主要介绍基于IIO驱动框架的ADC的简单实现方法。 ### 配置DTS节点 FS4412 ADC 的 DTS 节点在 kernel/arch/arm/boot/dts/exynos4412-fs4412.dts 文件中添加如下定义: ``` adc: adc@12C60000 { compatible = "samsung,exynos-adc-fs4412"; reg = <0x126C0000 0x100>, <0x10020718 0x4>; clocks = <&clock 303>; clock-names = "adc"; #io-channel-cells = <1>; io-channel-ranges; status = "okay"; }; ``` ### 编写驱动 ADC 的驱动源码为 fs4412_adc.c ### 定义 ADC 通道 可用的通道列表在 fs4412_adc.c 中定义: ``` #define ADC_CHANNEL(_index, _id) { \ .type = IIO_VOLTAGE, \ .indexed = 1, \ .channel = _index, \ .address = _index, \ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ .datasheet_name = _id, \ } /* 通道信息 */ static const struct iio_chan_spec fs4412_adc_iio_channels[] = { ADC_CHANNEL(0, "adc0"), ADC_CHANNEL(1, "adc1"), ADC_C...
LvSin 发布于 2个月前 阅读 67

oneDevice.js - 用NodeJS驱动硬件的驱动包

oneDevice.js 用NodeJS驱动硬件。 这是什么? 这是一个旨在用NodeJS驱动硬件的驱动包。开箱即用、完善的文档、持续更新、友好的API。用树莓派打造自己的智能家居。 我对智能家居非常感兴趣,并一直想要自己定制化diy,用智能化设备控制家里的一切设备。所以有了这个,是我一直在用的,我会持续的集成更多型号的硬件驱动和传感器,和更多抽象的接口。 DIY,个性化,定制化,完全可控是oneDevice的核心。   完整文档请查看npm或GitHub: 码云地址:https://gitee.com/onedevice/oneDevice npm地址:https://www.npmjs.com/package/onedevice GitHub地址:https://github.com/LanFly/Device 后续主要更新 增加更多型号硬件驱动 更抽象的API,一句自然语言完成条件监控、动作触发 更容易阅读的文档 更新日志 v0.0.2 @ 2018-04-22 17:19 SSD1306新增showSystemInfo函数,用于监控系统信息。 直接调用showSystemInfo即可在屏幕上面显示内存、CPU统计信息、IP、时间。 stopSystemInfo函数用于停止刷新系统监控信息。 增加GPIO引脚参考图,用于查阅树莓派引脚编号和功能。 v0.0.1 @ 2018-01-01 23:27 增加讯飞XFS5152CE文字转语音芯片的驱动 增加SSD1306 OLED屏幕的驱动。 支持在S...
LanFly 发布于 4天前 阅读 15 评论 3

树莓派下功能比较全的播放器:SMPlayer

之前一直在找树莓派3下,功能比较全的播放器,现在找到了一款SMPlayer,试用了下,感觉还可以。 我大概简单用了下 优点: 有界面,功能全 目录下双击就能播放 设置项也比较多 缺点: 我看视频喜欢加速播放,这款播放器加速播放,有些情况下语调会很奇怪.... 占用资源较多 卡...好多视频都莫名的卡顿 播放比屏幕分辨率大的视频,会裁剪画面.... 安装: sudo apt-get install mplayer sudo apt-get install smplayer    视频无法填满屏幕或者分辨率比较高的视频出现剪裁的情况: 解决方法: 关掉mplayer  终端--  sudo vi /etc/mplayer/mplayer.conf  找到#zoom = yes 行去掉前边的#  保存 
乐_然 发布于 2个月前 阅读 82

开源版-在线客服系统源码_网页聊天室源码_webim

开源版在线客服系统源码,聊天室源码,网页客服系统,webim,详情请咨询。
suanleba 发布于 2周前 阅读 37

树莓派3b安装virtualenv和virtualenvwrapper

在树莓派3b上安装virtualenv和virtualenvwrapper,发现有点坑,记录一下。 我的树莓派上,同时存在python2.7和python3.5   安装 运行命令: sudo apt-get install virtualenv sudo apt-get install virtualenvwrapper ps:或者使用pip3安装,pip3安装的时候一定要用sudo权限,否则会出一些莫名其妙的情况。 sudo pip3 install virtualenv virtualenvwrapper   配置virtualenvwrapper   将如下命令加入到加入到~/.bashrc的最后 #export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export WORKON_HOME=$HOME/.virtualenvs source /usr/share/virtualenvwrapper/virtualenvwrapper.sh 然后运行: source ~/.bashrc 这样virtualenvwrapper的安装就完成了 ps: export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 对于python2.7和3.5共存而言,得告诉virtualenvwrapper一个默认的python,一般linux的系统都要设置这个环境变量. 使用apt-get安装的话: 但是树莓派中,设置了这个环境变量后,却在创建虚拟环境的时候,莫名其妙报错。这行注释掉就没问题了。很纳闷。当然我们在后面有方法指定python版本。 使用pip3安装,就没这个问题。   使用 创建环境 mkvirtualenv env1 mkv...
乐_然 发布于 2个月前 阅读 86

树莓派raspberry 3B 安装selenium和iceweasel(firefox)

目的是打算用python控制浏览器。把整个过程记录下来,希望能给大家节省时间。 最折腾人的,就是各种软件的版本了吧。 先上个软件版本: 树莓派3B iceweasel 52+selenium 3.3 +geckodriver 15.0 python2.7 firefox在树莓派中,名称为iceweasel。iceweasel,selenium,geckodriver均有版本对应关系,其中一个搞错,很可能就报错。 过程 安装前 得先apt-get update下 sudo apt-get update   安装iceweasel(firefox)  sudo apt-get install iceweasel 查看iceweasel的版本,确保是52的 iceweasel -version 我的是52.7.3   下载驱动geckodriver 对于52.7.3的iceweasel,江湖传说得配0.15.0版本的geckodriver:下载地址  这里要注意选择arm的编译版本  下载下来后,对其进行解压缩,得到geckodriver文件,将此文件的权限,设置为777 sudo chmod -R 777 geckodriver 将geckodeiver文件,移动到环境变量/usr/local/bin目录下   安装selenium Selenium的版本要3.3以上才可以。我们就用3.3吧,防止出什么幺蛾子 sudo pip install selenium==3.3   准备代码 这样安装就完成了,下面我们来准备python测试的代码: from selenium import webdriver browser = webdriver.Fire...
乐_然 发布于 3周前 阅读 24

笔记本window10系统黑屏风扇不转简单分析解决办法

导致黑屏的原因:   一、供电芯片损虚焊或者老化,屏线松动或者主板给屏幕供电电路短路;   二、内存问题,内存松动或者本身有问题,重插一下或者换个内存试试;   三、BGA(显卡。南北桥)封装芯片虚焊损坏导致的,一般虚焊的情况比较多,加焊下就好;   四、还有一种情况是屏暗故障,这个要去送修。   风扇不转的原因:   一、电源供电问题(可能电源出问题,供电带不起风扇了);   二、风扇的灰尘太多,长时间没有清理,清理一下试试;   三、电脑 CPU 风扇出问题了。   以上就是Win10笔记本电脑开机黑屏风扇不转原因分析,出现这种情况,一般情况下是驻电产生的,如果自己不懂或者不敢修,可以点击蓝色快线,专门服务电脑维修,IT外包。
上心kate 发布于 3天前 阅读 7

智能设备 WiFi 配网的两种方式

智能家居的设备智能化,很多家电设备都安装上了 WiFi 模块, 方便用户通过手机控制和远程查看家里情况,典型的设备如智能插座,智能空调,智能空气净化器。 智能设备首次配置,这个过程简单来讲就是把 WiFi 设备初始化后,连到家里的无线路由器上。第一次配置成功后,基本就一劳永逸了。 目前流行的wifi配置模式一般有以下2种: 1:智能硬件处于AP模式,手机用于station模式,手机连接智能插座的AP后组成局域网,手机发送需要连接路由的SSID及密码至智能插座,智能硬件主动去连接指定路由后,完成连接 2:一键配置(smartconfig)模式:智能硬件处于混杂模式下,监听网络中的所有报文;手机APP将SSID和密码编码到UDP报文中,通过广播包或组播报发送,智能硬件接收到UDP报文后解码,得到正确的SSID和密码,然后主动连接指定SSID的路由,完成连接 AP(兼容) 模式 AP 是 (Wireless) Access Point 的缩写,即 (无线) 访问接入点。简单来讲就像是无线路由器一样,设备打开后进入 AP 模式,在手机的网络列表里面,可以搜索到类似 TPLINK_XXX 的名字(SSID)。 连接步骤: 1、连接路由器(获取路由器名称) 2、请求配网token,用户输入 WiFi 名字和密码后 3、初始化硬件设备,使设备进入 AP 模式,W...
乐_然 发布于 4周前 阅读 38

51单片机定时5分钟及数码管显示360秒(即5分钟)的具体代码

/*定时器1,定时模式 工作模式1 16位计数器, 定时5分钟后使能蜂鸣器*/ #include <reg52.h> //51头文件 #define uchar unsigned char//宏定义 #define uint  unsigned int//宏定义 sbit wei = P2^7;//位定义数码管位选锁存器接口 sbit duan = P2^6;//位定义数码管段选锁存器接口 sbit beep = P2^3;//蜂鸣器接口 //数码管段选表 uchar code leddata[]={                   0x3F,  //"0"                 0x06,  //"1"                 0x5B,  //"2"                 0x4F,  //"3"                 0x66,  //"4"                 0x6D,  //"5"                 0x7D,  //"6"                 0x07,  //"7"                 0x7F,  //"8"                 0x6F,  //"9"                 0x77,  //"A"                 0x7C,  //"B"                 0x39,  //"C"                 0x5E,  //"D"                 0x79...
Zhi_Young 发布于 1个月前 阅读 12

安装Raspberry pi操作系统(Windows环境下)

安装RASPBIAN
Houor 发布于 3个月前 阅读 65

STM32中I/O输入输出模式的个人浅见-输出部分

Cortex-M3里,对于GPIO的配置种类有8种,输入输出模式各有四种。 输出模式: 1.GPIO_Mode_Out_OD 开漏输出 2.GPIO_Mode_Out_PP 推挽输出 3.GPIO_Mode_AF_OD 复用开漏输出  4.GPIO_Mode_AF_PP 复用推挽输出 输入模式: 1.GPIO_Mode_AIN 模拟输入  2.GPIO_Mode_IN_FLOATING 浮空输入 3.GPIO_Mode_IPD 下拉输入 4.GPIO_Mode_IPU 上拉输入 I/O输出指的是STM32对“外部”(相对于STM32I/O口的外部,可看成芯片的外部)驱动硬件,可以理解成对外部输出高低电平,不同的模式只是在输出电平的方式上各有不同。 开漏输出(Open Collector Output):其中的“漏”级(Drain)指的是场效应管的漏级,相当于三极管的集电极(Collector)。则“开漏输出”的含义很明显:使用三极管的集电极或场效应晶体管MOSFET的漏级作为输出端,输出高电平时需要在集电极增加上拉电阻拉高输出电位(此时三极管工作在放大状态)。 由三极管电流放大特性(小电流控制大电流)可以知道该种输出方式适合作为电流型驱动,从负载抽取电流的能力相对较强(20mA左右)。 推挽输出(Push-pull Output):推挽结构一般是指两个三极管分别受两个互补信号的控制,一个晶体管的发射级和另一个晶体管的集电极连接作...
JustinF 发布于 2个月前 阅读 24

Verilog 开关控制LED实验

实验说明: SWITCH开关接高电平,Output输出高电平 SWITCH开关接低电平,Output输出低电平 代码可编译,烧录可运行 Verilog文件 module sp6( input ext_clk_25m, //外部输入25MHz时钟信号 input ext_rst_n, //外部输入复位信号,低电平有效 input switch, //拨码开关输入,ON -- 低电平;OFF -- 高电平 output reg out_pin //输出控制信号 ); always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) out_pin <= 1'b0; else if(!switch) out_pin <= 1'b1; //输出高电平 1 else out_pin <= 1'b0; //输出低电平 0 endmodule .ucf 配置文件 NET "ext_clk_25m" LOC = P23 | IOSTANDARD = LVCMOS33; NET "ext_rst_n" LOC = P24 | IOSTANDARD = LVCMOS33; NET "out_pin" LOC = P27 | IOSTANDARD = LVCMOS33; NET "switch" LOC = P29 | IOSTANDARD = LVCMOS33;  ...
李春利 发布于 3周前 阅读 11

AI摄影,华为P20 Pro让每一拍都是大片

## 前所未见,4000万徕卡三镜头 HUAWEI P20 Pro徕卡三镜头,成就每个瞬间,表现浓郁的徕卡德味色彩。 ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a782be861a27?w=1080&h=359&f=jpeg&s=22058) ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a784cf07a758?w=1080&h=359&f=jpeg&s=22349) ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a785de6d867a?w=1080&h=810&f=jpeg&s=76171) ## 无惧暗夜,自成光芒 HUAWEI P20 Pro配置f/1.8+f/1.6+f/2.4大光圈,最高支持ISO 102400,在极暗环境下也能捕捉到清晰画面。逆光拍摄,高光不溢出,暗处有细节。 ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a7942b77c161?w=1080&h=810&f=jpeg&s=73107) ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a7961ce3bbbf?w=1080&h=810&f=jpeg&s=158301) 华为AIS防抖技术加持,夜景模式,拍出晚美。 ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a7a6f834c2df?w=1080&h=810&f=jpeg&s=125479) ![](https://user-gold-cdn.xitu.io/2018/3/28/1626a7a88b5caee6?w=1080&h=810&f=jpeg&s=52123) ## 再远,也在眼前 HUAWEI P20 Pro支持3倍光学变焦,5倍三摄变焦,10倍数字变焦,...
华为终端开放实验室 发布于 1个月前 阅读 46

使用teamviewer树莓派远程控制树莓派

使用teamviewer树莓派远程控制树莓派
刘太刚 发布于 2周前 阅读 25

树莓派摄像头VLC网络监控

备忘 树莓派有网口,又有摄像头可以用,当然不能浪费资源,下面我就用红外摄像头来做个昼夜均可使用的摄像头监控~ 连接好树莓派的CSI摄像头,我用的是带有红外灯的,并且有光感控制的,只有在夜间红外灯才会自动亮起。这样可以省电并且保证红外灯的工作效率。 然后,树莓派用有线连接,因为我是从楼上拉到楼下,用无线会不稳定,所以用有线和树莓派连接。连接好后确认树莓派的网络是通的,最好设置树莓派的IP是固定IP,方便以后查看摄像头数据。 接下来就是监控配置,一样写个脚本,让树莓派进入监控。监控其实就是录像了……但是树莓派录像有个弊端,就是录像只能HDMI输出,或者只能输出不能记录。那我在这就用网络的方式来进行记录。首先树莓派的存储卡要大,或者你外接个U盘或者硬盘也可以。然后,开启摄像头并用VLC传输。 如果没有安装VLC先安装 apt-get -y install vlc aspivid -o - -t 0 -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264 &> /dev/null 上面是记录分辨率是640x360的录像,帧数是25帧,并把摄像头数据通过8090端口发送出去。 在电脑或者手机上,随便找一个vlc播放器,然后输入htt...
乐_然 发布于 2个月前 阅读 34

MSP430F5529LP(一)IIC与OLED的HELLOWRLD

MSP430F5529LP单片机的IIC与OLED的HELLOWRLD
Pulsar-V 发布于 2周前 阅读 17

笔记本window10系统黑屏风扇不转简单分析解决办法

导致黑屏的原因:   一、供电芯片损虚焊或者老化,屏线松动或者主板给屏幕供电电路短路;   二、内存问题,内存松动或者本身有问题,重插一下或者换个内存试试;   三、BGA(显卡。南北桥)封装芯片虚焊损坏导致的,一般虚焊的情况比较多,加焊下就好;   四、还有一种情况是屏暗故障,这个要去送修。   风扇不转的原因:   一、电源供电问题(可能电源出问题,供电带不起风扇了);   二、风扇的灰尘太多,长时间没有清理,清理一下试试;   三、电脑 CPU 风扇出问题了。   以上就是Win10笔记本电脑开机黑屏风扇不转原因分析,出现这种情况,一般情况下是驻电产生的,如果自己不懂或者不敢修,可以点击蓝色快线,专门服务电脑维修,IT外包。
上心kate 发布于 3天前 阅读 7

AI领袖、应用指南、窥见风口……你还能从这场全球峰会中获得更多

时代的潮流浩浩荡荡,上升到国家发展战略与基础设施的人工智能,正以不可思议的速度占据着我们生活的头条。如果说2017年宣告了人工智能接棒时代脉搏,那么2018年的人工智能将作为颠覆性变革力量迭代世界机器的运作。
GAITC

oneDevice.js - 用NodeJS驱动硬件的驱动包

oneDevice.js 用NodeJS驱动硬件。 这是什么? 这是一个旨在用NodeJS驱动硬件的驱动包。开箱即用、完善的文档、持续更新、友好的API。用树莓派打造自己的智能家居。 我对智能家居非常感兴趣,并一直想要自己定制化diy,用智能化设备控制家里的一切设备。所以有了这个,是我一直在用的,我会持续的集成更多型号的硬件驱动和传感器,和更多抽象的接口。 DIY,个性化,定制化,完全可控是oneDevice的核心。   完整文档请查看npm或GitHub: 码云地址:https://gitee.com/onedevice/oneDevice npm地址:https://www.npmjs.com/package/onedevice GitHub地址:https://github.com/LanFly/Device 后续主要更新 增加更多型号硬件驱动 更抽象的API,一句自然语言完成条件监控、动作触发 更容易阅读的文档 更新日志 v0.0.2 @ 2018-04-22 17:19 SSD1306新增showSystemInfo函数,用于监控系统信息。 直接调用showSystemInfo即可在屏幕上面显示内存、CPU统计信息、IP、时间。 stopSystemInfo函数用于停止刷新系统监控信息。 增加GPIO引脚参考图,用于查阅树莓派引脚编号和功能。 v0.0.1 @ 2018-01-01 23:27 增加讯飞XFS5152CE文字转语音芯片的驱动 增加SSD1306 OLED屏幕的驱动。 支持在S...
LanFly 发布于 4天前 阅读 15 评论 3

大爷点菜的需求管理智慧

一切项目的本源都是需求,需求明确了才能更好地规划项目所要完成的工作范围,第一期内容讲了项目管理的三重制约,即范围、时间、成本。时间和成本以项目的工作范围为核心,而范围又以项目需求为核心。由此可见需求是项目的本源。   然而, 需求管理并不是一个简单的事情,人的需求和想法很容易发生变化,从而导致项目工作会不断返工。这很可能导致成本上升,时间延迟,由此产生团队情绪不稳定和抱怨等连锁的反应。据全球项目管理协会(PMI)统计数字表明,因为需求管理不善而项目失败的概率高达37%。   下面通过一个“大爷点菜”的故事看看如何进行需求管理。   【原始需求】   一个大爷去饭店,坐下来点菜。   大爷:服务员,给我来份宫保鸡丁!   服务员:好嘞!   【中途需求变更】   大厨做到一半。   大爷:服务员,菜里不要放肉。   服务员:不放肉怎么做啊?   大爷:不放肉就行了,其它按正常程序做,不就行了,难吗?   服务员:好的,您稍等。   【需求改动太大,返工成本过高】   服务员告诉了大厨。   大厨:你大爷,我肉都回锅了。   然而大厨还是一点点挑出来了。   【低估需求变更成本】   大爷:服务员,菜里能给我加...
软件测试网 发布于 7天前 阅读 4

DIY 空气质量检测器

使用树莓派实现检测空气质量。发现原来美使馆的数据才靠谱... 准备材料: 树莓派 Raspberry Pi 3 (2也可以) 攀藤科技PMS5003 G5 和 转接板 ![接线](https://static.oschina.net/uploads/img/201804/20181431_m9YT.png "接线") 接线步骤图文 ...「[查看全文](https://bit.ly/2qLpg17)」(墙)
How11 发布于 1周前 阅读 7

关于如何管理团队的思考

​   明确、透明的组织架构 明确的组织架构很重要,这样可以大幅度的避免权力交叉争夺,太多的人力消耗就是消耗在了权力斗争当中,不要试图去使用“帝王学”,那只会让你的团队人员随时处于相互斗争中,从而消耗工作能力。 我认为以下任何一种错误的组织架构都有可能造成人力资源浪费: · 任务交叉负责:可能造成完 成工作相互扯皮消耗,让工作进展变得缓慢;可能造成员工相互配合,造成任务完成度降低; · 领导集体管理:当团队超过2名同等职位的负责人时,一定会造成团队不知道跟随谁的想法; · 模棱两可的指示:不说明谁负责,谁跟进,只是说要完成什么样一件事,有可能会造成工作量分配不公、不均等问题出现; · 过多的级别汇报:导致项目进程缓慢;找不到拍板的那个人;团队的精力花费在一次次的工作汇报中。 如何解决这些问题: 1、尽可能的少设部门层级 2、跨部门合作一定要确定项目负责人是谁 3、项目开始时多花时间确认事项,拒绝拍脑袋开始项目 4、不管是问题还是成绩,都必须确认到人 暧昧的组织架构不会帮助员工更好的完成任务,只会造成员工相互扯皮。 权责一体 天底下没有让手里无权的人去承担责任的道理。 没有明确的授权和同等匹配的资源时,强横的...
软件测试网 发布于 2周前 阅读 10

斐讯 K3C V32.1.45.267 V1.1官改升级操作

20180415上车试水,原版本支持的功能较少,因此刷了官改版本,本身对路由不是很了解,这里就记录一下就好了,官改的版本支持的功能是够用的,目前好像也只有这个版本,至于能不能刷其他第三方固件梅林等等,暂时还找不到,如果有的话再继续刷。 ps:打脸打脸,K3C很多功能用不起来,先不更新了。。太鸡儿烂了。 参考文章 http://iytc.net/wordpress/?p=2841 硬件信息 斐讯 K3C 版本信息 原始版本为:32.1.26.175 刷后版本为:32.1.45.267 注意事项     详细的注意事项在原作者的微博中已经写的很清楚了,这里只是觉得需要注意的地方。比如: 如果低于26.175版本,可以通过官方升级到该版本,或者下载离线包进行升级。 在控制面板中开启telnet客户端功能。 升级成45.267版本后,需要清理一下浏览器缓存,再访问。 远程路由     通过公网IP访问路由器,可以执行路由器管理、远程电脑网络唤醒等功能。     首先,确保使用的IP为公网独立IP,可向运营商直接申请。然后进入到远程管理中,设定远程端口和允许IP(255.255.255.255为任意IP可访问)。     火狐访问路由远程管理错误信息及解决方法。“此地址访问受限,此地址使用了一个通常用于网络浏览以外的端口。...
华山猛男 发布于 2周前 阅读 6

MSP430F5529LP(一)IIC与OLED的HELLOWRLD

MSP430F5529LP单片机的IIC与OLED的HELLOWRLD
Pulsar-V 发布于 2周前 阅读 17

使用teamviewer树莓派远程控制树莓派

使用teamviewer树莓派远程控制树莓派
刘太刚 发布于 2周前 阅读 25

开源版-在线客服系统源码_网页聊天室源码_webim

开源版在线客服系统源码,聊天室源码,网页客服系统,webim,详情请咨询。
suanleba 发布于 2周前 阅读 37

SGPC3气体传感器

环境和流量传感解决方案专家Sensirion盛思锐最新研发的超低功耗多像素气体传感器SGPC3正式面世。SGPC3的平均电流不到0.07mA,适用于室内空气质量监测,并具有长达数年的电池寿命。这非常有利于将室内空气质量检测装置应用到电池供电和移动设备相关的产品中。SGPC3基于Sensirion盛思锐的SGP多像素平台,采用DFN封装(2.45 x 2.45 x 0.9 mm3)和I2C接口,具有经过全面校准和湿度补偿处理的空气质量输出信号。 Sensirion盛思锐的MOXSens技术为SGPC3提供了无与伦比的抗硅氧烷污染的特性,使得SGP气体传感器具有优异的长期稳定性和精确性。超低功耗和长期稳定性相结合,从而使SGPC3可作为理想的室内空气质量监测装置应用到移动和电池供电的智能家居用品之中。与此同时,这也将助力于生产手持空气净化设备和空气质量检测设备的厂商更好地开发新产品。   盛思锐支持该产品的应用程序集和示例代码评估与测试;并且通过其分销网络提供SGP评估套件。 SGPC3 是数字低功率气体传感器,设计用于室内空气质量应用。Sensirion 的 CMOSens® 技术在单芯片上提供完整的传感器系统,具有数字 I2C 接口、温度控制的微型热板以及预处理的室内空气质量信号。该传感元件具有无与伦比的坚固性,可耐...
whoisliang 发布于 2周前 阅读 10

数码管显示三位数字

void display(int n) {    char b3,  b2, b1;            //定义两个有符号整形数b3,b2和b1    b3=n/100;    b2=(n/10)%10;//这里应该这样才对不然会大于10的    b1=n%10;                             //百位    P0=seg7[b3];          //    en3=0;             //显示DS2    ms_delay(10);     //延时    en3=1;            //关闭DS2    //十位    P0=seg7[b2];          //    en2=0;             //显示DS2    ms_delay(10);     //延时    en2=1;            //关闭DS2    //个位    P0=seg7[b1];      //    en1=0;         //显示DS1    ms_delay(10); //延时    en1=1;         //关闭DS1 }...
nibilly 发布于 3周前 阅读 8

ARM嵌入式存储器及半导体存储器

ARM嵌入式存储器及半导体存储器
刘太刚 发布于 3周前 阅读 13

FPGA Verilog 实现 3-8译码器

3个按键,按下任意开关 一个也不按到全部按下,8种可能 一个灯不亮到7号灯亮,8种可能   .ucf 配置文件 NET "ext_clk_25m" LOC = P23 | IOSTANDARD = LVCMOS33; NET "ext_rst_n" LOC = P24 | IOSTANDARD = LVCMOS33; NET "led[0]" LOC=P17 | IOSTANDARD = LVCMOS33; NET "led[1]" LOC=P16 | IOSTANDARD = LVCMOS33; NET "led[2]" LOC=P15 | IOSTANDARD = LVCMOS33; NET "led[3]" LOC=P14 | IOSTANDARD = LVCMOS33; NET "led[4]" LOC=P12 | IOSTANDARD = LVCMOS33; NET "led[5]" LOC=P11 | IOSTANDARD = LVCMOS33; NET "led[6]" LOC=P10 | IOSTANDARD = LVCMOS33; NET "led[7]" LOC=P9 | IOSTANDARD = LVCMOS33; NET "switch[0]" LOC=P29 | IOSTANDARD = LVCMOS33; NET "switch[1]" LOC=P30 | IOSTANDARD = LVCMOS33; NET "switch[2]" LOC=P32 | IOSTANDARD = LVCMOS33; .v 文件 module sp6( input ext_clk_25m, //外部输入25MHz时钟信号 input ext_rst_n, //外部输入复位信号,低电平有效 input[3:0] switch, //4个拨码开关接口,ON -- 低电平;OFF -- 高电平 output reg[7:0] led //8个LED指示灯接口 ...
李春利 发布于 3周前 阅读 16

FPGA Verilog 流水灯

  .ucf 配置文件 不变,适用于下面几个代码 .ucf 配置文件 不变,适用于下面几个代码 NET "ext_clk_25m" LOC=P23 | IOSTANDARD = LVCMOS33; NET "ext_rst_n" LOC=P24 | IOSTANDARD = LVCMOS33; NET "led[0]" LOC=P17 | IOSTANDARD = LVCMOS33; NET "led[1]" LOC=P16 | IOSTANDARD = LVCMOS33; NET "led[2]" LOC=P15 | IOSTANDARD = LVCMOS33; NET "led[3]" LOC=P14 | IOSTANDARD = LVCMOS33; NET "led[4]" LOC=P12 | IOSTANDARD = LVCMOS33; NET "led[5]" LOC=P11 | IOSTANDARD = LVCMOS33; NET "led[6]" LOC=P10 | IOSTANDARD = LVCMOS33; NET "led[7]" LOC=P9 | IOSTANDARD = LVCMOS33;   Verilog 计数器 用8个LED 代表 0 ~ 255 .v 文件 //8个LED循环点亮,实现流水灯效果 module sp6( input ext_clk_25m,//外部输入25MHz时钟信号 input ext_rst_n, //外部输入复位信号,低电平有效 output reg[7:0] led//8个LED指示灯接口 ); reg[23:0] cnt;//20位计数器 //24bit cnt计数器进行循环计数,最大计数为0xff_ff_ff always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) cnt <= 20'd0; ...
李春利 发布于 3周前 阅读 2

dueros python sdk使用注意

百度的dueros感觉还是挺不错的,就是文档和教程比较凌乱。 还在摸索中,对一些需要注意的,我补充下。 这篇文章说的比较详细 https://dueros.baidu.com/forum/topic/show/245089 补充几点: 文中在百度dueros网页平台上创建产品的时候,选的是‘音箱‘的场景。这个场景下,没有语音调节的选项。个人建议选择“通用SDK“这样配置项能多不少。 auth认证前要删除~/.dueros.json这个文件 然后在python sdk目录的app目录下,修改auth.py文件,填入client_id和client_secret 如上工作完成后,运行auth.sh,此时一般要手动打开浏览器,填入http://127.0.0.1:3000
乐_然 发布于 3周前 阅读 8

Verilog 开关控制LED实验

实验说明: SWITCH开关接高电平,Output输出高电平 SWITCH开关接低电平,Output输出低电平 代码可编译,烧录可运行 Verilog文件 module sp6( input ext_clk_25m, //外部输入25MHz时钟信号 input ext_rst_n, //外部输入复位信号,低电平有效 input switch, //拨码开关输入,ON -- 低电平;OFF -- 高电平 output reg out_pin //输出控制信号 ); always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) out_pin <= 1'b0; else if(!switch) out_pin <= 1'b1; //输出高电平 1 else out_pin <= 1'b0; //输出低电平 0 endmodule .ucf 配置文件 NET "ext_clk_25m" LOC = P23 | IOSTANDARD = LVCMOS33; NET "ext_rst_n" LOC = P24 | IOSTANDARD = LVCMOS33; NET "out_pin" LOC = P27 | IOSTANDARD = LVCMOS33; NET "switch" LOC = P29 | IOSTANDARD = LVCMOS33;  ...
李春利 发布于 3周前 阅读 11

Xilinx FPGA Platform Cable USB 驱动安装

判断驱动安装是否OK 打开电脑的 【设备管理器】,如下图     从官网下载驱动   文件检验:   开始安装驱动     验证安装效果      
李春利 发布于 3周前 阅读 9

Xilinx FPGA Spartan6 开发环境搭建

硬件准备:     FPGA开发板: Xilinx FPGA Spartan6 特权同学  + USB 供电线     FPGA下载器: Xilinx Platform Cable USB     + USB 数据线     JTAG 下载线     硬件全家福,如下:        软件准备:      Xilinx_ISE_DS_Win_14.6_P.68d_3.tar      下载 ISE   用迅雷直接下载: https://xilinx-ax-dl.entitlenow.com/dl/ul/2013/06/12/R209855082/Xilinx_ISE_DS_Win_14.6_P.68d_3.tar/4acd51c68f0f9ca6e759d1f77a0249a3/5AC616D5?akdm=0&filename=Xilinx_ISE_DS_Win_14.6_P.68d_3.tar     文件校验 验证我们下载的文件是否官方发布     安装 Xilinx_ISE      破解 Xilinx_ISE      将以下内容保存为 C:\Xilinx\xilinx_ise.lic #MAIN INCREMENT System_Edition xilinxd 2025.01 permanent uncounted \ 6C8EE4B2A5BE \ VENDOR_STRING=something@my.door,System_Edition,software,permanent,_0_0_0 \ HOSTID=ANY ISSUER=TBE TS_OK INCREMENT Web_Package xilinxd 2025.01 permanent uncounted \ 4CB6784CF723 \ VENDOR_STRING=something@my.door,Web_Package,software,permanent,_0_0_0 \ HOSTID=ANY ISSUER=TBE TS_OK PACKAGE Sy...
李春利 发布于 3周前 阅读 4

树莓派raspberry 3B 安装selenium和iceweasel(firefox)

目的是打算用python控制浏览器。把整个过程记录下来,希望能给大家节省时间。 最折腾人的,就是各种软件的版本了吧。 先上个软件版本: 树莓派3B iceweasel 52+selenium 3.3 +geckodriver 15.0 python2.7 firefox在树莓派中,名称为iceweasel。iceweasel,selenium,geckodriver均有版本对应关系,其中一个搞错,很可能就报错。 过程 安装前 得先apt-get update下 sudo apt-get update   安装iceweasel(firefox)  sudo apt-get install iceweasel 查看iceweasel的版本,确保是52的 iceweasel -version 我的是52.7.3   下载驱动geckodriver 对于52.7.3的iceweasel,江湖传说得配0.15.0版本的geckodriver:下载地址  这里要注意选择arm的编译版本  下载下来后,对其进行解压缩,得到geckodriver文件,将此文件的权限,设置为777 sudo chmod -R 777 geckodriver 将geckodeiver文件,移动到环境变量/usr/local/bin目录下   安装selenium Selenium的版本要3.3以上才可以。我们就用3.3吧,防止出什么幺蛾子 sudo pip install selenium==3.3   准备代码 这样安装就完成了,下面我们来准备python测试的代码: from selenium import webdriver browser = webdriver.Fire...
乐_然 发布于 3周前 阅读 24

开源Android容器化框架Atlas开发者指南

Atlas是古希腊神话中的天神,是波士顿动力公司的机器人,借助搜索引擎,得以发现这个名词背后许许多多的含义。在手机淘宝,Atlas是一个扎根于Android客户端的一个组件化容器框架,相比神话中用手和头支撑起苍天的泰坦神族,Atlas在手淘默默无闻地承载着手淘上丰富业务的运行,伴随着数不清的功能在... Android方向的大牛们都已经深入了解了插件化所带来的巨大的便利,一直也没时间去搞一套详细的记忆,在这里,仅以源码分析的形式进行插件化框架的巩固,文集中会具体分析源码,框架结构,运行原理等方面,除了加深记忆,也让我们一起进步。 随着手机淘宝业务的快速增长,协作研发团队的不断扩大,技术也面临着更多挑战:一方面代码量快速上升导致方法过多,限制打包的正常输出;另一个方面各业务线的开发和集成都需要到一个 apk上,业务间相互耦合严重,集成开发工作效率低下,这个大背景下,急需要做一次从构建,集成,交付的技术改造, 于是Atlas作为手淘运行的容器诞生了,它灵活的解决了各个业务开发期间的相互独立解耦,而且提供了各个模块线上独立动态能力。 Atlas是什么? Atlas是一个Android客户端容器框架,主要提供了组件化、动态性、解耦化的支持。支持在编码期...
mcy0425 发布于 3周前 阅读 5

JavaScript在物联网中的应用

在那篇《最流行的编程语言JavaScript能做什么?》里,我们列举了JavaScript在不同领域的使用情况,今天让我们来详解一下JavaScript在物联网中的应用。
Phodal 发布于 2年前 阅读 4413 评论 8 点赞 2

​黑科技:程序猿如何打造属于自己的分体键盘

之前一直想买个机械键盘,听说机械键盘敲代码和玩游戏都特别爽,也是装B神器。同时也觉得普通的键盘打字打久了手腕会有点酸酸的,因为敲键盘时都是要弯着手腕的,一点也不符合人体工程学。于是乎就想买一个分体的机械键盘,结果找了半天都没有比较中意的,找到几个人体工程学键盘,都是薄膜的,而且价格高得离谱,不就多个人体工程学光环嘛。。。
腾讯Bugly 发布于 2年前 阅读 5517 评论 40 点赞 16

Linux下TTL串口登录pcDuino V2

在没有显示器和网线的情况下,串口是连接pcDuino V2的不二选择。本文主要记录了我在LINUX下通过USB-TTL转接连接pcDuino V2 的过程步骤,仅供参考!
HilerChen 发布于 4年前 阅读 3753 评论 12 点赞 3

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

树莓派使用DHT11温湿度传感器

通过树莓派的GPIO口连接DHT11温湿度传感器,读取温湿度数据。成功使用wiringpi实现,pi4j失败。
李鱼跃龙门 发布于 4年前 阅读 18993 评论 18 点赞 13

dell服务器远程获取硬件状态

以dell的R620型号的服务器做的测试 登陆上dell服务器ilo的IP地址,首先打开ipmi,ilo2是直接支持ipmi2.0的 此框需要点击 “IDRAC设置”->“网络”->“IPMI设置”在”启用LAN上IPMI“后的复选框打钩,才能启动ipmi 好像是内置到了ilo2,应该是,这个不是太确定,但是我能确定的是,ipmitool获取数据的时候直接可以使用ilo的账户密码 [root@manrhca script]# ipmitool  -I lan -H 192.168.232.200 -U root -P calvin sdr SEL              | Not Readable      | ns Intrusion        | 0x00              | ok Fan1A RPM        | 2160 RPM          | ok Fan2A RPM        | 2160 RPM          | ok Fan3A RPM        | 2160 RPM          | ok Fan4A RPM        | 2160 RPM          | ok Fan5A RPM        | 2160 RPM          | ok Fan6A RPM        | 2280 RPM          | ok Inlet Temp       | 21 degrees C      | ok Exhaust Temp    ...
薄皮儿脆沙瓤 发布于 4年前 阅读 9012 评论 2 点赞 4

[翻译完成] 用红外遥控器遥控树莓派

概述 本篇教程将会讲解如何用一部红外遥控器来遥控操作树莓派上安装的影音中心. 在开始之前, 你需要按此教程把树莓派搭建为影音中心. 需要的零件 在搭建好了影音中心之后, 你需要去买些零件. 名称 数量 红外传感器 http://adafruit.com/products/157 1 红外遥控器 http://adafruit.com/products/389 1 母对母杜邦线 http://adafruit.com/products/794 1 硬件连接 红外传感器只有三个引角, 都需要连上树莓派的GPIO管脚. 我们需要用到母对母杜邦线把它们连上. 好的杜邦线连上红外传感器会使得连接更可靠些. 按下图所示进行连接. 跳线的颜色无关紧要, 只是不同颜色更容易区分. 要注意在树莓派上用红外传感器需要3.3V电压, 千万别用5V. LIRC 树莓派和遥控器的通讯通过LIRC (Linux Infrared Remote Control)完成. 大多数树莓派发行版都已经预装了, 所以在Rasbmc上我们就不需要再安装了, 只需做些设置即可. 为了确保红外硬件正常工作, 我们可以用SSH连接安装好XBMC的树莓派来测试下. 如果你从没用过SSH,请看此教程. 在XBMC的系统信息界面我们可以获得树莓派的IP地址. 我们需要关掉红外功能, 要不然我们无法通过SSH使用LIRC. 进入XMBC的设置界面, 然后将"Enable GPIO TSOP IR Re...
八宝粥 发布于 5年前 阅读 14956 评论 16

[翻译完成] 树莓派搭建hadoop集群

Hadoop是由Java实现的, 所以在树莓派上运行就和在其他x86平台上运行一样简单. 首先, 我们需要安装支持树莓派的JVM. 可以选用OpenJDK或者Oracle的JDK 8. 我个人推荐JDK8, 其速度稍微快些, 但是OpenJDK安装更容易些. 1. 安装Java 安装OpenJDK十分简单, 只要执行以下命令 pi@raspberrypi ~ $ sudo apt-get install openjdk-7-jdk pi@raspberrypi ~ $ java -version java version "1.7.0_07" OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1+rpi1) OpenJDK Zero VM (build 22.0-b10, mixed mode) 另外, 我们可以选择安装Oracle的JDK 8. 可以从这获得: https://jdk8.java.net/fxarmpreview/index.html pi@raspberrypi ~ $sudo tar zxvf jdk-8-ea-b36e-linux-arm-hflt-*.tar.gz -C /opt pi@raspberrypi ~ $sudo update-alternatives --install "/usr/bin/java"  "java" "/opt/jdk1.8.0/bin/java" 1  pi@raspberrypi ~ $ java -version java version "1.8.0-ea" Java(TM) SE Runtime Environment (build 1.8.0-ea-b36e) Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode) 如果你两个都装了, 用以...
八宝粥 发布于 5年前 阅读 9930 评论 19 点赞 4

基于Android平台的无线传感器网络(ZigBee)监控系统

ZigBee协议实现的WSN,由ZigBee协议的传感节点组成,完成数据采集、处理、上传,执行控制命令。 JavaWeb实现的服务端,由RS232通信,数据解析,持久化层,面向移动终端的Web通信等模块组成。web部分包括了HTTP及XMPP协议的推送服务。 Android平台上的WSN监控软件。
Change_Ty 发布于 5年前 阅读 10886 评论 44 点赞 4
顶部