作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 树莓派除了提供常见的网口和USB接口 ,还提供了一组GPIO(General Purpose Input/Output)接口.这组GPIO接口大大拓展了树莓派的能力.GPIO不仅能实现通信,还能直接控制电子元器件,从而让用户体验到硬件编程的乐趣. GPIO简介 在树莓派3上,GPIO接口由40个针脚(PIN)组成.每个针脚都可以用导线和外部设备相连.你可以通过焊接的方式来把导线固定在PIN上,也可以用母…
树莓派我们编程一般都直接用高效的python,针对于GPIO编程,python也是有这一方面的库的,这里最有名也是最常用的就是RPI.GPIO了.这个库是专门为树莓派GPIO编程所设计的,利用它你可以愉快的像Arduino那样轻松控制GPIO管脚. 安装: sudo apt-get -y python-pip #安装pip sudo pip install rpi.gpio #安装RPI.GPIO 安装完成后在实际运用的时候,我们也会像arduino那样去设置输入输出,设置高低电平,获取针脚值等…
本文由正点原子STM32F407探索者开发板的led和beep实验,总结了gpio编程的套路. 下文中以hardware 来称呼可能的硬件外设,如led或beep等. 新建项目后主要用到三个文件:hardware.c ,hardware.h, main.c hardware.h #ifndef __HARDWARE_H #define __HARDWARE_H #include "sys.h" void HARDWARE_Init(void); #endif hardware.c #i…
一.初步认识S3C2440A [S3C2440A简介] S3C2440A是三星公司推出的基于ARM920t内核的32/16位RISC微处理器.主要用于手持设备和中高端电子产品中.它内部集成16k数据cashe.16k指令cashe,内存管理单元MMU,4KBSRAM(片内内存), nandflash控制器,LCD控制器,USB控制器,中断控制器,支持60个中断源,4通道PWM定时器,1个看门狗定时器.24个外部中断源,两通道SPI.具有PLL片上时钟发生器.片内集成RTC实时时钟芯片.8通道10…
树莓派使用GPIO接口来控制LED灯,自制五彩炫光的节日彩灯. 1.硬件准备 a. 树莓派(Raspberry Pi)一个 b. 彩色RGB二极管 c. 杜邦线 d. 5V电源引脚 以上所有零件均可在某宝上 买到,都很便宜. LED灯上的4根引脚分别是VCC,R,G,B. VCC需要接到电源正极.我们把它连到树莓派的5V引脚上. R,G,B分别是红绿蓝灯的负极接口.我们把它们连接到树莓派的GPIO口上. 然后跟前一篇一样,使用PWM来控制3个小灯的明暗程度即可混合出各种不同颜色的光. 2.组装图…
1 前言: 看完了uC/OS-III的基本介绍之后,大致对这个操作系统有了点了解,但真正的理解还是要通过不断的去使用,在使用中体验uC/OS-III的乐趣和更深的理解其工作原理是非常重要的.因此,我在STM32上面移植好uC/OS-III后,就開始了自己的简单实验学习,至于怎么移植,书上还有网上有非常多參考资料,当然你也能够下载别人移植好的干净的项目project直接用也能够.本文主要介绍一下怎么利用uC/OS-III来控制STM32开发板上面的LED闪烁任务. 2 硬件部分: 这里并不为某个开…
       wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群.wiringPi的API函数和arduino很相似,这也使得它广受欢迎.作者给出了大量的说明和演示样例代码,这些演示样例代码也包含UART设备,I2C设备和SPI设备等,毫无疑问地说wiringPi功能很强大. 首先要做的当然就是wiringPi的安装了.wiringPi使用GIT工具维护个更新代码. 假设在你的平台上还没有安装GIT工具,能够输入下面命令: sudo apt-get in…
RPi.GPIO是通过Python/C API实现的,C代码操作底层寄存器, python通过Python/C API调用这些C接口. 这是关于RPi.GPIO项目的介绍. 其中提到了有python 垃圾回收机制,并不适合于实时要求的应用. https://pypi.org/project/RPi.GPIO/ This package provides a class to control the GPIO on a Raspberry Pi. Note that this module is…
在开始本文内容之前,老周先纠正一个错误.在上一篇中,提到过 Arduino 开发板的 Vin 引脚,文中老周说这个供电口的输入电压不能高于 5.5V.这里有错,被卖家给的使用说明忽悠了,上 Arduino 官网看了一下说明和原理图,Vin 引脚的有效电压是 7 - 12V,和DC输入口一样:输入电压不能高于 5.5V 的是 5V 引脚.5V 引脚既可以为元器件供电(输出),也可以向这个引脚输入 5V 电压为开发板供电. ======================================…
说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入口文件 这里chipcon_cstartup.s51是汇编的启动文件,ZMain.c相当于main文件,里面有main函数: int main( void ) { osal_int_disable( INTS_ALL );// Turn off interrupts 关中断 HAL_BOARD_IN…
让一个LED灯闪烁不过瘾,我们应该让这块开发板完成一点更高难度的任务:比如让两个LED灯闪烁. …… 当然了,以我们的现在使用的空循环技术,还是可以实现这点的.但是这样显得略为低端.所以我们使用一个高端点的技术:中断.还有就是会介绍一下在CMSIS里怎么使用中断. 一.电路 二.实现思路 第一个LED的闪烁还是用之前使用的空循环吧,别把世界弄得太复杂了. 第二个LED的闪烁就稍微自动化一点了:使用一个定时器,让它在到了需要切换引脚电平的时候通知我们一下.这样做的好处就是我们只需在定时器通知时关注…
摘要 利用STM32CubeMx配置STM32芯片的功能,然后将配置后的内容生成代码,并导出成可以使用Keil打开编辑的文件,在Keil中添加控制代码后,下载到Proteus仿真中,使用仿真观察代码执行结果.     所需软件 1) STM32CubeMx 下载地址:https://www.st.com/en/development-tools/stm32cubemx.html 2) Keil 软件版本:uVision V5.14.2 3) Proteus 软件版本:8.9 ps2 实现的功能…
目录: 1.MM32F0020简介 2.MM32F0020系统时钟配置 3.MM32F0020的GPIO外设配置及其初始化 4.使用官网的Systick定时器做延时 5.MM32F0020 GPIO驱动LED灯 提要: 本实例学习MM32F0020的GPIO外设的配置,配置PA1.PA7.PA9.PA11为推挽输出模式驱动LED1~LED4灯翻转,每隔1s时间(使用官网的Systick延时)翻转1次LED灯的状态. 内容: 1.MM32F0020简介: (1)MM32F0020微控制器是基于Ar…
目录: 1.MM32F0140简介 2.MM32F0140系统时钟配置 3.MM32F0140的GPIO外设配置及其初始化 4.使用官网的Systick定时器做延时 5.MM32F0140 GPIO驱动LED灯 提要: 本实例学习MM32F0140的GPIO外设的配置,配置PA11.PB3.PB4.PB5为推挽输出模式驱动LED1~LED4灯翻转,每隔1s时间(使用官网的Systick延时)翻转1次LED灯的状态. 内容: 1.MM32F0140简介: (1)MM32F0140微控制器是基于Ar…
不使用 delay() 函数而使 LED 闪烁 有些时候你需要同时做两件事.例如,你可能希望在读取按键按下状态同时让LED闪烁. 在这种情况下,你不能使用 delay(),因为Arduino程序会在delay()中停顿. 如果按键被按下的同时,Arduino正在暂停等待 delay()结束 ,你的程序也将会错过按键的按下. 这个演示展示了如何闪烁LED而不使用 delay().它点亮了LED,然后记录下时间.然后,每一次通过 loop()循环, 检查闪烁设置时间是否到达. 如果是,它的点亮或熄灭…
* 内容简述: 本例程操作系统采用ucos2.86a版本, 建立了5个任务            任务名                                             优先级            APP_TASK_START_PRIO                               2            主任务                          Task_Com1_PRIO                                …
上一篇:[stm32][ucos] 1.基于ucos操作系统的LED闪烁.串口通信简单例程 * 内容简述: 本例程操作系统采用ucos2.86a版本, 建立了7个任务            任务名                                             优先级            APP_TASK_START_PRIO                               2            主任务            APP_TASK_USER_…
PAIP.并发编程 多核编程 线程池 ExecutorService的判断线程结束 ExecutorService并没有提供什么 isDone()或者isComplete()之类的方法. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/attilax 解决: 1.需要自己扩展一哈...继承一哈. 2.添加一个制成的flag... try { es.awaitTermination(3,…
注意我写这篇文章的思路,要想做切面编程,包含两个部分,通知和切点,通知是你要做哪些增强,切点是指你要拦截哪些方法.先介绍通知的定义再去介绍切点的定义.这篇文章我取名叫做Spring_AOP编程(传统编程).因为Spring Aop的编程有两种,一种是传统编程(Advice这种方式,),一种是AspectJ切面编程,AspectJ 是一个框架 (第三方AOP框架 ),提供切面编程.这篇文章讲的是AOP所需要的两个部分以及传统的AOP编程(Advice这种方式). -----------------…
网上的教程,一般Python用RPi.GPIO来控制树莓派的GPIO,而C/C++一般用wringpi库来操作GPIO,RPi.GPIO过于简单,很多高级功能不支持,比如i2c/SPI库等,也缺乏高精度定时等高级特性.相比之下,wiringpi则功能丰富的多,其实wringpi已经有了python绑定,可以非常简单的在python中使用这个库.鉴于网上基本没有这个库的中文说明,我一边学习,一边以做笔记的形式,写几篇关于这个库的基本使用的文章. 安装:首先安装python-pip: 我用的Arch…
#include<reg52.h> #define uchar unsigned char #define uint unsigned int void main (void) { uchar i=0; TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-50000)/256; //定时器T0的高8位赋值 TL0=(65536-50000)%256; //定时器T0的低8位赋值 TR0=1; //启动定时器T0 TF0=0; //定时器的溢出标志位 先清零 P0=0xff;…
转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 在搭建好arduino开发环境(http://www.cnblogs.com/xiaowuyi/p/3190201.html或者http://wikicode.net/?p=152)后,就可以进行入门学习了. 一.本次实验所用到的器材为: 1.arduino uno R3无特殊注明,本学习笔记全部使用此板. 2.面包板(1个SYB-120):这里简单介绍一下面包板,以后的笔记中不…
/* * data_process.c * * Created on: 2018年7月5日 * Author: admin */ #include "board_led.h" #include "board_uart.h" #include "data_process.h" // Task configuration #define LF_TASK_PRIORITY 1 #define LF_TASK_STACK_SIZE 512 // Task…
得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点击即可播放.点击获取录音即可下载最后一次的音频: 播放下载都是围绕blob文件.播放就是让隐藏的audio标签的地址指向内存中的blob: this.play = function (audio,blob) { blob=blob||this.getBlob().blob; audio.src =…
在学期末,笔者参加了学校的电工实习,前六天做都很快,但是今天要做一个关于555多谐振荡器的LED闪烁电路,由于笔者没有提前准备,导致今天就算把电路搭建出来也不懂具体原理,耗费了不少时间,所以我打算专门开一个博文来详细解析这个芯片. 本文以TI公司生产的NE555P芯片为例来说明(不同厂家生产的555芯片几乎都是一样的). 无稳态振荡器(自激多谐振荡器)——astablemultivibrator(分立元器件搭建) 多谐振荡器电路是一种矩形波产生电路(属于数字电路,三极管不工作在放大线性区).这种…
Socket网络编程-UDP编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.UDP编程概述 1>.UDP服务端编程流程 创建socket对象.socket.SOCK_DGRAM 绑定IP和Port,bind()方法 传输数据 接收数据,socket.recvfrom(bufsize[, flags]),获得一个二元组(string, address) 发送数据,socket.sendto(string, address) 发给某地址某信息 释放资源 2>.UDP客户…
Socket网络编程-TCP编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.socket介绍 1>.TCP/IP协议 2>.跨网络的主机间通讯 在建立通信连接的每一端,进程间的传输要有两个标志: IP地址和端口号,合称为套接字地址 socket address 客户机套接字地址定义了一个唯一的客户进程 服务器套接字地址定义了一个唯一的服务器进程 3>.什么是socket套接字 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对…
如果觉得资源不错,友情转发,贵在分享!!! 少儿编程Scratch: 少儿编程Scratch第一讲:Scratch完美的初体验少儿编程Scratch第二讲:奇妙的接球小游戏少儿编程Scratch第三讲:宇宙大战.枪战游戏少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘少儿编程第五讲:Scratch练习一坐标和移动少儿编程Scratch第六讲:抽奖游戏之造型.随机和广播少儿编程Scratch第七讲:字母雨打字练习少儿编程Scratch第八讲:变量和太空大战少儿编程Scratch第九讲:小猫…
并发:同时做多件事情 多线程:并发的一种形式,它采用多个线程来执行程序. 并行处理:把正在执行的大量的任务分割成小块,分配给多个同时运行的线程.并行处理是多线程的一种,而多线程是并发的一种. 异步编程:并发的一种形式,它采用 future 模式或回调(callback)机制,以避免产生不必要的 线程,异步编程的核心理念是异步操作:启动了的操作将会在一段时间后完成.这个操作 正在执行时,不会阻塞原来的线程.启动了这个操作的线程,可以继续执行其他任务.当 操作完成时,会通知它的 future,或者调…
1.设计定义 设计一个以200ms亮,200ms暗交替闪烁的led灯,并且有一个复位按钮可以停止工作. 2.设计输入 2.1端口 以固定周期交替闪烁说明由时钟控制,需要一个时钟控制端口clk,要求复位按钮,则需要一个复位端口reset,输出为led灯,则有一个输出端口led. 2.2变量 每个开发板的时钟频率是固定的,本次用的开发板时钟周期为20ns.而led闪烁的周期为400ms,我们需要每200ms让led改变一次状态,这时便需要一个计数的变量counter,当counter达到(200ms…