/*====================================================================================================== 作 者: 许明龙 单 位: 兰州交通大学软件工程专业09级 联 系: 世上没用永远的陌生人,只有还未认识的朋友! QQ:494462498. Tel:13893256491 Email:xuhongming251@163.com 修改时间: 2011-6-5 =======================================================================================================*/ /*======================================================================================================== 如何使用? 1.引入DLL文件,引入头本文件,就已声明了导入函数 //要引入DLL的方法 //1、把SERIALPORTDLL1.dll和SERIALPORTDLL1.lib拷贝到工程目录下 //2、然后在 工程->设置->连接->分类->常规->对象/库模块输入:SERIALPORTDLL1.lib 2.调用Init初始化串口 3.调用SetReceiveFuntion(&ReveveChar);指定接收和处理数据的函数 4.实现void ReveveChar(WPARAM data, LPARAM port)这个函数 5.调用SendData发送数据 6.ClosePort(); ========================================================================================================*/ /*======================================================================================================= 函 数 名: Init 功 能: 打开并初始化串口 参数说明: UINT port //端口号 UINT baud //波特率 char parity = 'N' //校验位,默认为无校验位 UINT databits = 8 //数据位,一个字节的位数,默认为8位 UINT stopbit = 1 //停止位,默认为1位 使用例子: Init(2,9600); //打开串口2,波特率9600,其它值为默认值(无奇偶校验、数据位为8、停止位为1) Init(4,4800,'N',10);//打开串口4,波特率为4800,无奇偶校验,数据位为10,(停止位默认为1) ... ... ======================================================================================================*/ extern "C" __declspec(dllimport) void Init( UINT port, //端口号 UINT baud, //波特率 char parity = 'N', //校验位 UINT databits=8 , //数据位 UINT stopbit=1 //停止位 ); /*========================================================================================================== 函 数 名: SendData 功 能: 向串口发送数据,使用之前必须先调用Init函数初始化串口 参数说明: char data[] //要发送的数据 int datalen //发送数据的长度 使用例子: 例1: char a[] = {0x01,0x03,0x00,0x03,0x00,0x02,0x34,0x0B};//准备要发送的十六进制:01 03 00 03 00 02 34 0B SendData(a,8); //向串口发送十六进制数:01 03 00 03 00 02 34 0B 例2: char a[] = "$01001000020110*" //准备要发送的字符串$01001000020110* SendData(a,16); //向串口发送:$01001000020110* ============================================================================================================*/ extern "C" __declspec(dllimport) void SendData( char data[], int datalen ); /*=================================================================================================================== 函 数 名: SetReceiveFuntion 功 能: 指定接收数据的函数,指定好后,串口接收缓冲区每有一个字节的数据时会自动触发和调用所指定的函数 参数说明: a、参数需要一个函数指针, b、该指针指向一个用于接收数据的函数(该函数由用户自己声明、定义和实现), c、用户定义该函数时必须要满足一下条件: 1、该函数为全局函数 2、返回值为void 3、形参为两个,类型为:形参为UINT,LONG 使用例子: 1、void ReveveChar(WPARAM data, LPARAM port);//声明一个用于接收数据的全局函数,本头文件已默认声明这个函数,用户无需再次声明 2、 CString strTemp; void ReveveChar(WPARAM data, LPARAM port)//实现这个接收数据并处理数据的函数 { static int RecevCount = 0; //用于接收字节数的计数 char str[512] = ""; sprintf(str,"%02x",data); //接收十六进制数,并格式化为字符形式 strTemp += str; RecevCount++; if (RecevCount >= 8) //接收到数据长度等于了协议长度,则开始进行协议的处理 { RecevCount = 0; strTemp = "接收到得数据协议为" + strTemp; AfxMessageBox(strTemp); strTemp = ""; } } 3、SetReceiveFuntion(&ReveveChar);//指定void ReveveChar(WPARAM data, LPARAM port);该函数接收和处理数据 =========================================================================================================================*/ extern "C" __declspec(dllimport) void SetReceiveFuntion(void (*pfCallBack)(WPARAM data, LPARAM port)); /*================================================= 函 数 名: ClosePort 功 能: 关闭由Init函数打开的串口 参数说明: 无需参数 调用例子: ClosePort(); =================================================*/ extern "C" __declspec(dllimport) void ClosePort(); /*=============================================================================================================== 函 数 名: ReveveChar 功 能: 每当串口接收到一个字符(字节)时就会自动触发和调用这个函数, 用户只需实现不必也不能去亲自调用, 注意:打开串口后,必须要调用SetReceiveFuntion(ReveveChar) 参数说明: data //接收到的是串口中的一个字节数据 port //端口号,表明是哪个端口接收到的数据 调用例子: 只要实现,无需自己调用。 实现处理数据可参考如下简单的例子,思想是边接收数据边处理 void ReveveChar(WPARAM data, LPARAM port) { static int RecevCount = 0; //用于接收字节数的计数 char str[512] = ""; sprintf(str,"%02x",data); //接收十六进制数,并格式化为字符形式 strTemp += str; RecevCount++; if (RecevCount >= 8) //接收到数据长度等于了协议长度,则开始进行协议的处理 { RecevCount = 0; strTemp = "接收到得数据协议为" + strTemp; AfxMessageBox(strTemp); strTemp = ""; } } 说明:本函数并非为导出函数,写在这里仅仅是起到声明一个函数的作用,用户也可以删除掉,自己声明和实现! ===============================================================================================================*/ void ReveveChar(WPARAM data, LPARAM port);
2024-01-17 15:05:23 10KB SerialPort SerialPort封装
1
C8051F系列单片机PCB图库,画PCB时可以用的常用元件
2024-01-17 13:59:39 45KB 单片机开发资料
1
(PrintedCircuitBoard),中文名称为印制电路板,又称印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的载体。由于它是采用电子印刷术制作的,故被称为“印刷”电路板。 而双层pcb板即双层线路板,双层线路板这种电路板的两面都有,不过要用上两面的导线,必须要在两面间有适当的电路连接才行。这种电路间的“桥梁”叫做导孔。导孔是在pcb上,充满或涂上金属的小洞,它可以与两面的导线相连接。用PROTEL画双面pcb板子的时候,在TopLayer(顶层)上画导线连接元器件,就是在顶层画板;选择BottomLayer(底层),在底层上画导线连接元器件,就是在底层上画板。以上就是画双层pcb,意思是在一块pcb板子的顶层和底层都画导线。双面板解决了单面板中因为交错的难点(可以通过孔导通到另一面),即正反两面都有,元器件可以焊接在正面,也可以焊接在反面,它更适合用在比单面板更复杂的电路上。 双层pcb板—设计及布线原则 双层板地线设计成栅状围框形成,即在印制板一面布较多的平行地线,另一面为抄板垂直地线,然后在它们交叉的地方用金属化过孔连接起来(过孔电阻要小)。
2024-01-17 12:16:22 95KB 硬件设计
1
总结的很全面,希望受用
2024-01-17 11:29:08 9.53MB
1
该设计项目是一款体积小的低功耗蓝牙开发板设计,它集成了测量模块,以提供实时的能量消耗数据,这对于开发人员优化软件以设计长电池寿命设备至关重要。它支持带有便于使用的 C/C++ SDK 和大量的开源库的 ARM mbed cloud-based IDE,这使得原型开发非常容易。 通过其模块化设计,我们可以将其分为两部分 - CMSIS DAP 接口部分和 BLE 部分。CMSIS DAP 接口设计就像瑞士军刀多功能组合一样。它提供模块化编程,CMSIS DAP 调试,USB 虚拟串口,电流测量和电池充电。BLE 部分建立在 Nordic nRF51822 上,Nordic nRF51822 搭载蓝牙低功耗 2.4GHz 多协议无线电,运行 16MHz 的 32 位 ARM Cortex-M0 内核,和具有 3D 加速度计和 3D 陀螺仪的 6 自由度的 MPU6050。这些集成在一起,能提供运动检测功能。蓝牙低功耗 nRF51822 开发板PCB截图: 特性: nRF51822 : ARM Cortex-M0 + 2.4GHz 无线电 (BLE 或 ANT+) MPU-6050 : 3d 加速度计 + 3d 陀螺仪 LPC11U35FHI33 : CMSIS DAP 电流测定 CN3065 : USB部分的电池充电端 电源 : USB/battery(3.5-4.2V) 输入电压:3.3V 4个 I/O 口, 全部可用作模拟输入,数字输入/输出,I2C,SPI 或 UART VCC 输出控制 硬件: 微控制器:nRF51822QFAA; LPC11U35FHI33 PCB外形尺寸:43.3mm x 29.0mm x 4.3mm 电源:USB/Battery (JST-1.0 电池座)
2024-01-16 11:30:47 519KB nrf51822 蓝牙开发板 电路方案
1
支持H265封装的flv播放ffplay.exe,支持本地播放 flv-265 也支持http-flv-265.理论上也支持rtmp-265,好资源,拿走不谢!
2024-01-15 08:46:52 13.08MB ffplay.exe flv播放
1
二极管-整流桥堆基于AltiumDesigner的封装库含3D 1、该项目已实际运用于项目 2、资源含有3D和2D封装
2024-01-14 23:52:08 10.13MB
1
1、LED发光二极管3D封装基于AltiumDesigner 2、内含3D和2D封装 3、项目实测可用
2024-01-14 23:51:47 4.5MB
1
在PCB板的设计当中,可以通过分层、恰当的布局布线和安装实现PCB的抗ESD设计。在设计过程中,通过预测可以将绝大多数设计修改仅限于增减元器件。通过调整PCB布局布线,能够很好地防范ESD。以下是一些常见的防范措施。
2024-01-14 23:49:53 78KB 硬件设计
1
常用电子元器件封装尺寸图
2024-01-14 23:42:28 10.12MB 封装
1