自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (11)
  • 收藏
  • 关注

原创 14 在ZStack里的网络广播传输

ZStack里的网络传输功能比较像系统上的udp socket编程. 它可以支持广播,组播,及点到点的单播传输方式。   网络传输的功能所用的主要数据类型及函数在工程的”profile/AF.h”里.   typedef enum{ afAddrNotPresent = AddrNotPresent, //表示地址不存在 afAddr16Bit = Addr16B

2017-07-30 21:52:05 1005 1

原创 13 在ZStack里设置pan ID和信号输出功率

在zigbee网络里pan ID非常非常重要. 一个pan ID代表一个网络,在此网络里只能一个协调器,多个路由器和多个终端设备, 而且它们还需要使用同一通道来通信.在相同的户内环境里,如需要多个zigbee网络来通信的话,必须修改工程里的pan ID和通道的设置:-DDEFAULT_CHANLIST=0x00000800 //就是表示使用通道, 不同的通道表示不同的频段

2017-07-28 10:29:58 3795 2

原创 12 在ZStack里实现uart数据接收功能

在上一篇已经实现uart数据输出功能了,但接收数据时尚未搞好的。 在MT任务里已实现当有uart数据需接收时,自动调用函数MT_UartProcessZToolData来处理数据的接收,接收数据后通过发出消息的方法把数据传递到用户任务里去。void MT_UartProcessZToolData ( uint8 port, uint8 event ) //{ uint8 ch;

2017-07-28 00:13:38 2468 2

原创 11 在ZStack里实现uart数据输出功能

在ZStack里的uart功能封装在HAL/Include/hal_uart.h头文件里:#define HAL_UART_BR_9600 0x00#define HAL_UART_BR_19200 0x01#define HAL_UART_BR_38400 0x02#define HAL_UART_BR_57600 0x03#define HAL_UART_BR_115200 0

2017-07-27 20:55:56 1715

原创 10 在ZStack里的按键驱动

到目前我们可以通过设置任务的事件信息,从而让任务的事件处理函数触发。但除了事件外如还需要传递额外的数据(消息)给另一任务时,就需要用下面的函数功能:OSAL/OSAL.htypedef struct{ uint8 event; //记录消息的种类,如按键消息则为KEY_CHANGE uint8 status;} osal_event_hdr_t; //每种消息都包括此结构体作头部e

2017-07-26 21:56:49 1044

原创 09 在ZStack里的定时器应用

ZStack里的任务是基于事件来调度的, 里面的定时器其实就是在约定的时间到后,设置指定任务的事件,从而让定时的任务处理定时事件.定时器封装在工程目录OSAL里的OSAL_Timers.h头文件里: extern uint8 osal_start_timerEx( uint8 task_id, uint16 event_id, uint16 timeout_value ); //设置timeout

2017-07-25 21:40:06 2198

原创 08 在ZStack里的led灯控制

在ZStack里已经在hal层里把led的功能封装起来了.在工程的HAL目录 include子目录 hal_led.h头文件里://下面的宏表示第几个led灯, 逻辑上的表示,与具体硬件并没有直接的关系#define HAL_LED_1 0x01#define HAL_LED_2 0x02#define HAL_LED_3 0x04

2017-07-25 13:37:45 3771

原创 07 在ZStack里创建自己的task

打开SampleApp工程后: 因在ZStack里有些资源只能供一个任务使用,所以先把原SampleApp任务的功能去掉(不是删除掉,而是让它不执行起来).在OSAL_SampleApp.c 里:const pTaskEventHandlerFn tasksArr[] = { ... // SampleApp_ProcessEvent 备注掉SampleApp任务的事件处理函数};v

2017-07-25 11:04:21 1025

原创 06 ZStack的task工作流程分析

安装ZStack-CC2530-2.5.1a.exe默认安装到”C:\Texas Instruments\ZStack-CC2530-2.5.1a”目录下. Components目录里实现 hal层、stack网络协议栈、mac层的封装, 而且也实现了osal操作系统的功能等. 通常情况下我们就是调用里面实现好的功能函数就可以了.Documents目录里存放有各个分层的的功能函数的说

2017-07-24 15:15:58 1684

原创 05 TI ZStack协议栈的分层及设备分类

协议栈里常见的英文缩写:SDK: software development kitBSP: board support package(板级支持包):硬件电路图,PCB. 相应的源码API: Application Programming Interface 编程应用接口CBC-MAC: Cipher Block Chaining Message Authentication CodeC

2017-07-24 11:24:51 3450

原创 04 基于TI官方CC2530 BasicRF的简单应用

解包”CC2530 BasicRF(TI 原文件).rar”到C:盘. 1) 无线点灯: 双击打开"C:\CC2530 BasicRF\CC2530 BasicRF\ide\srf05_cc2530\iar\light_switch.eww" 打开后,可以看出整个工程由4个目录组成. application: 应用程序, 即这里的代码是基于调用其它目录里提供的功能实现的

2017-07-20 11:36:28 5083

原创 03 TI cc2530外部中断的应用

在cc2530的中断控制器,共有18个中断源: 其中P0INT, P1INT, P2INT分别是P0, P1, P2组IO口的中断号. 外部中断其实就是指GPIO口的中断功能, 也就是当一个IO口的电平发生变化时自动产生一个硬件信号,自动暂停当前程序的执行,触发调用一个处理函数.一个IO口的电平状态有: 高电平, 低电平, 下降沿, 上升沿, 双边沿 CC2530外部中断线只能捕捉:下

2017-07-20 00:03:47 2452

原创 71 linux usb设备驱动

usb接口有大,小口之分 usb有主机(host,大口)/设备(otg, 小口)工作模式usb主机可以主动去操作设备, 主机接口由4根线(vcc, gnd, d+, d-)usb设备被主机操作, 有5根线(vcc, gnd, d+, d-, id), id线可用于区分设备接口// otg接口即可作主机角色,也可以作设备的角色usb接口可以像树型一样的进行扩展, 可用usb hub芯片(FE1.

2017-07-19 14:41:00 1849

原创 70 linux网络设备驱动之虚拟网卡及arp应答的实现

网络设备驱动的调用不像字符设备驱动,不是通过打开设备文件或属性文件的方式来操作的. 通常情况下用socket编程来实现网络通信, 当使用tcp/udp协议收发网络数据时,无需处理网络协议的包头。 因为网络设备驱动应用程序是无法直接调用, socket编程时是经过网络协议栈处理包头信息后, 再由网络协议栈调用网络设备来收发数据的.在linux内核里以结构体net_device的对象来描述一个网络设

2017-07-18 15:57:40 2045

原创 02 TI CC2530的uart控制器

uart原理参考 uart接口: 发出数据时,就是根据波特率的位时间来改变tx脚的电平. 如二进制数据是’1’则用高电平表示, ‘0’则用低电平表示. 接收数据时,根据位时间来判断rx脚的电平, 如是高电平则表示’1’, 低电平表示’0’.作这样的工作比较麻烦,要求也比较高。所以一般情况下, CPU芯片里都会提供uar控制器,用于帮我们根据要传输的数据自动控制tx脚的电平和判断rx脚的

2017-07-16 09:02:46 1441

原创 01 TI cc2530的IO口控制

计算机里归根到底就是使用二进制0/1, 在电路上就是用高低电平(3.3v, 0v)来表示。一个IO口就是相当于从CPU芯片里引出的一根导线, 用于连接输入输出设备,由代码来控制/获取它的电平。 也就是说我们可以通过代码控制一个IO口是高电平还是低电平(IO作输出功能)。 还是通过代码来判断IO口是处于高/低电平状态(IO作输入功能).CC2530里共分成三组IO口: P0, P1, P2

2017-07-15 10:22:53 4362

原创 QT 支持多客户端网络视频监控的实现

QT里获取摄像头的单张数据: cam = new QCamera; capture = new QCameraImageCapture(cam); connect(capture, SIGNAL(imageCaptured(int,QImage)), this, SLOT(image_ready(int,QImage))); //当捕捉一张图像数据后,触发槽函数,并传递图像数据作为

2017-07-13 16:05:31 6823 11

原创 qt for android 在windows下搭建开发环境

下载所需的工具包: 链接: https://pan.baidu.com/s/1gfYBWm3 密码: jjbw1 安装qt-opensource-windows-x86-android-5.4.1.exe //注意最好是以管理员的身份来安装, 安装路径不要有中文2 安装jdk 32位系统安装: jdk-7u51-windows-i586.exe 64位

2017-07-11 23:51:09 3181

原创 69 linux i2c设备驱动之ft5306电容触控芯片驱动

lcd的显示部分与触摸部分实际是分开的。电容屏的触摸相当于在lcd屏上覆盖一个透明的矩阵键盘, 当用户按下时,可以获取用按下的坐标位置. 通常情况不管是电阻还是电容屏,现都使用一个触控芯片,用于处理用户的操作坐标及实现与SOC的坐标数据的交互.电阻的触控芯片有: tsc2046, 还有国内的: xx2046 电容的触控芯片有: ft5x06(9寸屏以下使用), gt9271(9寸屏以上用) 注

2017-07-06 16:09:34 2308

原创 68 linux framebuffer设备驱动之spi lcd屏驱动

前面驱动的spi lcd仅仅是刷了一下图而已, 如果要让QT图形程序在此lcd上显示的话,还需要实现标准的framebuffer设备驱动才可以.实现一个fb设备驱动好, QT程序就可以在显存里显示出来。 只需要在设备驱动把显存的数据通过spi控制器发送到屏的驱动ic,就可以让QT程序在spi lcd屏上显示出来. 但显存的数据有可能经常发生变化(界面切换), spi lcd屏也应跟着显示出改变过的画

2017-07-06 11:41:32 9853 5

原创 67 linux内核里的framebuffer设备驱动模型

紧接上一博文 ,实现一个最基本功能的fb设备驱动,需实现如下步聚:1) 从内存里分配出禁用数据缓存功能的缓冲区,用于作显存.2) 动态分配struct fb_info对象空间, 每个fb_info对象表示一个fb设备.3) 初始化fb_info对象里的fb_var_screeninfo成员里的分辨率, 位色,每个像素的rgb位域等信息.4) 初始化fb_info对象里的fb_fix_screenin

2017-07-06 01:24:58 938

原创 66 最简单的linux framebuffer设备驱动实现

struct fb_info 的一个对象表示一个framebuffer设备 struct fb_info结构体成员比较多, 最起码需要初始化下面列出的几个成员struct fb_info fbi { ... struct fb_var_screeninfo var; /* Current var */ struct fb_fix_screeninfo fix; /

2017-07-05 18:42:44 1436 3

原创 65 linux spi设备驱动之spi LCD屏驱动

SPI的控制器驱动由平台设备与平台驱动来实现. 驱动后用spi_master对象来描述.在设备驱动中就可以通过函数spi_write, spi_read, spi_w8r16, spi_w8r8等函数来调用控制器."include/linux/spi/spi.h"//让spi->master指向的控制器对象发出len个字节数据,数据缓冲区地址由buf指针指向static inline int sp

2017-07-05 12:52:57 15747 46

原创 64 linux spi设备驱动之mcp2515(can控制器)驱动

mcp2515是一个spi接口的can控制器, 也就是我们通过spi接口把数据交给mcp2515, 它再到数据转换成can数据发出.MCP2515的接口: INT 中断线 ---> GPIOA(10) SCK 时钟线 ---> SPI0_CLK SI ---> SPI0_MOSI SO ---> SPI0_MISO CS

2017-07-04 17:42:36 7733 8

原创 63 linux内核的SPI设备驱动模型及应用程序调用SPI控制器的方法

SPI设备驱动模型与I2C设备驱动模型基本一样.SPI的控制器驱动由平台设备与平台驱动来实现. 驱动后用spi_master对象来描述. spi的设备也是先用spi_board_info来描述,在spi_master对象注册时再生成相应的spi_device对象. spi设备驱动由spi_driver对象描述. spi_device对象与spi_driver都是挂载到spi总线上的.描述spi设备

2017-07-04 15:19:34 4367

原创 62 linux内核里基于GPIO口的SPI控制器驱动

当SOC里的spi控制器不稳定,或者spi控制器不够用时,可以基于GPIO口扩展出SPI控制器. 在Linux内核里已提供了相应的代码,是一个平台驱动,只需写平台设备描述相关资源即可.make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-Device Drivers ---> [*] SPI support --->

2017-07-04 14:16:55 2239 2

原创 61 OrangePi Linux内核里的spi控制器驱动

在全志H3里有2个spi控制器, 每个控制可有4个片选信号: //////////////////////////script.bin里的spi控制器,spi设备相关设置:[spi0]spi_used = 1spi_cs_bitmap = 1spi_mosi = port:PC00<3><default><default><default>spi_miso = port:PC01<3><d

2017-07-04 12:37:06 3599 1

原创 60 spi通信协议

SPI(Serial Peripheral Interface–串行外围接口), 由摩托罗拉公司发明. SPI的接口组成: 数据线,每个时钟周期传输一位数据: MOSI:  master output slave input(主机输出,从机输入) MISO: master input slave output(主机输入,从机输出) //两根数据实现全...

2017-07-04 10:00:53 1631

原创 59 linux i2c设备驱动之dht12驱动

dth12的工作模式除了单总线外,还可以使用i2c接口的工作模式. dht12的引脚说明 ////////////////////////// 上图说明dht12芯片内部有5个寄存器,寄存器地址从0x00 ~ 0x04, 分别存放湿度数据,温度数据,校验和 同时需要特别注意:上面说dht12的设备地址为0xB8, 此地址已是包含读写位了,通常设备址地址只是7位的. 所以dht12的i2c

2017-07-03 15:11:18 2103

原创 58 linux i2c设备驱动之eeprom驱动

eeprom是i2c接口的at24c04芯片, at24c04中的”04”表示容量是4k位.at24c04的设备地址: 上图表示设备地址前4位是固定的”1010”, 后三位是由芯片的引脚A2、A1,A0的电平来决定。通常A0~A2脚都是接地址,表示设备地址为”0x50”. 4K容量则分成两个2K, P0脚用于区分是访问前2K, 还是后2K. 8K容量则分成4个2K, P0和P1脚则是用于

2017-07-02 22:54:55 6161 5

原创 57 linux内核的i2c设备驱动模型

为了实现设备驱动的可移植性及可重用性,在linux内核的驱动模型里, device_driver设备驱动只需实现驱动方法和使用device设备提供的硬件资源(如用到的io口,中断号等). bus总线用于装载device设备与device_driver设备驱动,并管理设备与设备驱动的匹配.为了方便我们,内核里基于设备驱动模型又扩展出平台设备驱动模型. 在嵌入式里,平台设备驱动模型是使用率最高的驱...

2017-07-01 23:19:16 1599 2

基于QCamera, QTcpServer实现网络视频监控

基于QCamera, QTcpServer实现网络视频监控. 支持多客户端. 文档说明: http://blog.csdn.net/jklinux/article/details/75072993

2017-07-13

qt mp3录音程序

qt里简单的mp3录音程序,使用lame编码库. 程序执行时开始录音并编码成mp3存放在”/my.mp3”, 直到程序退出执行 说明文档: http://blog.csdn.net/jklinux/article/details/72815790

2017-05-31

ffmpeg桌面图像h264编码并封装avi

ffmpeg桌面图像h264编码并封装avi. http://blog.csdn.net/jklinux/article/details/72519344

2017-05-19

ffmpeg摄像头数据h264编码并封装avi

ffmpeg摄像头数据h264编码并封装avi http://blog.csdn.net/jklinux/article/details/72478004

2017-05-18

原创 qt 组播实现的屏幕共享程序 

原创qt 组播实现的屏幕共享程序. 更多例子: blog.csdn.net/jklinux 

2017-05-16

原创 qt数据库操作简例

原创 qt数据库操作简例 教程: http://blog.csdn.net/jklinux/article/details/72081872

2017-05-15

qt网络组播程序 

qt网络组播程序 

2017-05-15

qt实现的tcp网络聊天室

qt实现的tcp网络聊天室

2017-05-14

qt录屏程序源码

qt录屏程序源码

2017-05-12

qt贪吃蛇游戏源码

qt贪吃蛇游戏源码

2017-05-12

qt贪吃蛇源码

2017-05-11

空空如也

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

TA关注的人

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