自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 [USB学习笔记]在驱动程序中如何把从应用程序传来的Event句柄转换为内核Event对象

应用程序通过DeviceIoControl把Event句柄传送给驱动程序. bResult=DeviceIoControl(m_hDevice,  IOCTL_SEND_EVENT_HANDLE,  &m_hEvent,  sizeof(HANDLE),  ReData,  4,  &nBytes,  NULL);驱动程序的分发例程序中通过ObReferentceObjectByH

2016-11-22 12:36:07 523

原创 [USB学习笔记]对管道和端点的理解

管道和端点是一一对应的1个USB设备有多少个端点,其和主机通信进就可使用多条管道,且端点类型决定了管道中数据的传输类型,如中断端点对应中断管道,且该管道只能进行中断传输.由0号端点构成的管道称为缺省管道,它是双向的,即支持IN传输也支持OUT传输.

2016-11-21 13:54:33 1628

原创 [学习笔记]VC6中用makefile项目的方法写驱动程序,遇到无法生成.bsc文件,使得无法浏览信息

问题当想要访问一个常量的定义信息时,说无法找到bsc文件? 以前也不知道bsc文件的作用,只知道,工程经过编译连接后,是可以定位常量,函数,头文件这些功能的.这次为什么不行了呢?解决方法原来这些功能的实现是要通bsc文件实现的. 在Project Settings – General – Browse info file name中其实是有输出文件的.可为什么没有输出呢? 后来注意到Proje

2016-11-14 15:39:34 1422

原创 [学习笔记]这几天在调试USB驱动程序时遇到的问题

windbg实现双机调试平台搭建  前提是,有两台真机,目标机是WinXp,调试机是win7,它们通过串口连接,波特率115200.在目标机上修改配置设置文件boot.ini 注意在修改boot.ini文件之前,要去掉它的只读属性.  然后用记事本打开文件后,添加一行选项,内容为  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft

2016-11-14 14:06:41 1928

原创 MSP430 我的低功耗系统编程模板

主要应用前后台程序结构来实现,前台程序是各种中断等突发事件,后台程序就是主循环,处理各种事件引起的各种任务.#include "MSP430G2553.h"int gTaskFlag=0; //任务标志 位void sysInit(){}void main( void ){ // Stop watchdog timer to prevent time out

2016-10-27 09:52:44 695

原创 MSP430G2553 定时器中断实例

代码#include "MSP430G2553.h"void led_init();void timer0_init();void main( void ){ // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; //--配置时钟----- BCSCTL1=CALBC1_1MHZ;

2016-10-25 14:11:07 9108

原创 读取温度传感器DS18B20的实例

配置IO引脚#define DS18B20 BIT4 //配置IO引脚#define DS18B20_HIGH P2OUT |= BIT4#define DS18B20_LOW P2OUT &= ~BIT4精确延时宏代码#define CPU_CLOCK 8000000UL //MCL

2016-10-25 12:03:14 6317 1

原创 MSP430G2553 flash操作例子

/* 实际适用于MSP430x2xx系列单片机,包含以下10个常用功能函数: (1)初始化。Flash_Init(unsigned char Div,unsigned char Seg ):依据SMCLK频率计算设定Flash的时钟的分频系数,靠Seg段号码确定计划操作的段起始地址。 (2)整段擦除。Flash_Erase():段擦除函数。 (3)读字节。Flash_ReadChar(uns

2016-10-21 15:29:59 1733 1

原创 长短键识别

功能实现  MSP-EXP430G2 开发板上 P1.3 接了一个按键,P1.0 和 P1.6 接了 LED(用跳线帽连接),要求短按 P1.3 控制 LED1 的亮灭,长按P1.3 控制 LED2 的亮灭。状态机Created with Raphaël 2.1.0长短键识别状态机S0待机S0待机S1短按S1短按S2长按S2长按按键按下事件/按键松开事件/短键事件处理计数门限事件/长键事件处理按键松

2016-10-21 11:10:15 920 1

原创 MSP430G2553 WDT的NMI中断例子

将 RST/NMI 引脚设为 NMI 模式,主程序中点亮 P1.0 口 LED,在 NMI 中断中关掉 LED。现象为当按下 RST 按键时,LED 熄灭,并且再也不亮(除非重新上电)。#include "MSP430G2553.h"void main( void ) { WDTCTL = WDTPW + WDTHOLD +WDTNMI; //NMI模式(非Reset模式)

2016-10-21 09:48:50 1385

原创 MSP430G2553 WDT的定时器模式例子

#include "MSP430G2553.h"int main( void ){ WDTCTL = WDT_ADLY_1000; //定时周期为1000ms IE1 |= WDTIE; //使能WDT中断 P1DIR |= 0x01; // P1.0输出 _EINT();

2016-10-21 09:39:51 1708

原创 MSP430G2553 WDT的看门狗模式例子

#include "io430.h"int main( void ){ int i; // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P1DIR |= BIT0; P1OUT &= ~BIT0; //暗 for(i=0;i<16000;i++);

2016-10-20 13:37:35 2707 5

原创 MSP430G2553 输出ACLK和SMCLK

#include "io430.h"int main( void ){ int i; // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P1DIR |= P0 + P4; //设置P1.0 1.4为输出 P1SEL |= P0 + P4; //设置P1.0输出ACLK,P1.4输出

2016-10-20 13:00:42 3199

原创 欢迎使用CSDN-markdown编辑器

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

2016-10-20 12:55:40 293

原创 在 DOS 下实现多线程

<br />在 DOS 下实现多线程<br />      程序在 Turbo C 3.0 下调试通过,采用了最简单的时间片轮转法,实现了多线程的系统,程序尽量采用了最简洁的技术来实现多任务的系统,主要使用到了C标准库中的setjmp和longjmp两个函数,程序绝大部分都是采用C/C++语言书写,但是仍然不可避免的采用了三句内嵌汇编,来进行线程堆栈的切换。由于DOS下的系统调用,都是不可重入的.如果在多个线程中同时调用了DOS的系统调用,就会出现死机等问题。一般可以使用信号量来解决DOS重入问题。整个系统

2010-12-17 10:46:00 4624 3

转载 功率、转矩、转速关系推导

<br />电动机的功率与转矩<br />电动机的功率,应根据生产机械所需要的功率来选择,尽量使电动机在额定负载下运行。选择时应注意以下两点: <br />① 如果电动机功率选得过小.就会出现“小马拉大车”现象,造成电动机长期过载.使其绝缘因发热而损坏.甚至电动机被烧毁。 <br />② 如果电动机功率选得过大.就会出现“大马拉小车”现象.其输出机械功率不能得到充分利用,功率因数和效率都不高,不但对用户和电网不利。而且还会造成电能浪费。 <br />要正确选择电动机的功率,必须经过以下计算或比较: <br

2010-11-16 08:11:00 8403

转载 内存模式

<br />     内存模式的出现不是由编译器决定的,而是由处理器的寻址方式决定的,在8086处理器中为了在16位寄存器的基础上寻址20位的地址,引入了段寄存器和分段寻址的方式。在编译器这一级,利用这种段式的寻址方式,可以实现多种不同的存储分配方法,因此就产生了所谓的不同的内存模式。<br />    1. tiny模式:   程序和数据在一个64K字节的段内<br />    2. small模式:  独立的代码段(64KB)和独立的数据段(64KB)<br />    3. medium模式: 单个数

2010-11-12 12:39:00 1320

原创 自动修改IP地址及网卡地址(批处理文件实现)

<br />      微软没有提供在命令行下(CMD)控制网络连接的断开与启动。但可以在网上下载一个管理设备的程序devcon.exe可控制网卡的启动和关闭。      <br />      再制作两个.bat文件和两个.reg文件就能实现IP地址及网卡地址的修改和恢复。现介绍这个文件的制作方法和使用方法。<br />(1)条件与目的。<br />      原:<br />            网卡实际地址:00-16-76-B7-F8-85<br />            IP:10.10.3.

2010-11-11 16:32:00 2916

原创 Bochs使用笔记(Bochs虚拟机下安装DOS 6.22)

Bochs使用笔记(Bochs虚拟机下安装DOS 6.22) 1.下载Bochs.         到官方网站http://bochs.sourceforge.net/下载一个最新版Current Release:Bochs 2.4.52.安装Bochs.    安装很简单,打开 Bochs-2.4.5.exe后,同意协议等什么的一路next.最后会让你看一个列表文件和ReadMe文件。 安装完后,在开始菜单里打开Bochs 2.4.5.跳出一个窗口Bochs Start Menu.用于虚拟机的参数设置等等

2010-11-10 14:04:00 8940 2

原创 C++中利用代理类使数组拥有简单的边界检测实例

多维数组在C++中的有用程序和其它语言相同,所以找到一个像样的去持方法是很重要的。常用方法是C++中的标准方法:用一个类来实现我们所需要的C++语言中并没有提供的东西。这里用定义类模板来实现。 一维,二维,三维分别定义一个类模板。

2010-11-05 09:47:00 1112

原创 使用XMS扩展内存编程实例

粗略地讲,扩展内存和扩充内存在物理上都是指高内存区,只是由于管理程序的不同而给予不同的称呼,二者分别代表了两种不同的管理规范:EMS和XMS。它们以不同的方式提供了使用高内存的操作。二者都是在系统启动时加载驱动程序而控制高内存的,并为用户提供功能调用。

2010-11-04 13:47:00 1563

空空如也

空空如也

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

TA关注的人

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