LCD-QC1602A v2.0
一、引脚功能说明
一、引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下列表所示:
符号——————– 引脚说明
-VSS——————– 电源地
-VDD—————— 电源正极(电压>=4.5时后将使用默认配置)
-VL——————— 液晶显示偏压
-RS——————— 数据/命令选择
-R/W——————- 读/写选择
-E———————– 使能信号
-D0———————-数据
-D1———————-数据
-D2———————-数据
-D3———————-数据
-D4———————-数据
-D5———————-数据
-D6———————-数据
-D7———————-数据
-BLA——————– 背光源正极
-BLK——————– 背光源负极
引脚接口说明:
第1脚:VSS为地电源。
第2脚:VDD接3.3v正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
二. 1602LCD的指令说明及时序
1、1602液晶模块内部的控制器共有11条控制指令,如下列表所示:
- 指令—————RS—R/W—D7—D6—D5—D4—D3—D2—D1—D0
-清显示—————0——0——0—–0——0—–0——0—–0——0—–1
-光标返回————0——0——0—–0——0—–0——0—–0——1—–*
-置输入模式———0——0——0—–0——0—–0——0—–1——I/D—S
-显示开关控制——-0——0——0—–0——0—–0——1—–D—–C—–B
-光标或字符移位—-0——0——–0——0—–0—-1—-S/C—R/L— * – –*
-置功能—————0——0——–0 ——0—-1—-DL—N —–F—– * — *
-置字符发生器地址–0——0——-0——-1—–字符发生存贮器地址
-置数据存贮器地址–0——0——1——显示数据存贮器地址
-读忙标志————0——1——BF—– 计数器地址
-写数到—————1——0——-要写的数据内容
-读数数据————1——1——-读出的数据内容
2、控制命令表
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
3、基本操作时序表
1.读数据时序图
三、实现代码
1、C代码
#include "lcd1602.h"
#include "stm32f10x.h"/* -----------------------------------初始化1602-------------------------------------------*/
void LCD1602_Init(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E)
{LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_Display_mode);LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_shows1);LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_cursor3);LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_clear);
}/* ---------------------------------写指令函数-------------------------------------------*/
void LCD1602_WriteCmd(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t Cmd)
{uint8_t PinNo = LCD1602_Get_PinNo(GPIO_Pin_Dx);LCD1602_BusyWait(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW, GPIO_InitStructure_LCD1602_E);GPIO_ResetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_E->GPIO_Pin);GPIO_Write(GPIOx_LCD1602_Dx,(0x00ff&Cmd)<<PinNo);GPIO_ResetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RS->GPIO_Pin);GPIO_ResetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RW->GPIO_Pin);GPIO_SetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_E->GPIO_Pin);GPIO_ResetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_E->GPIO_Pin);/*GPIO_WriteBit(GPIOA,GPIO_Pin_7,(BitAction)((Cmd&0x80)>>7)); //D7GPIO_WriteBit(GPIOA,GPIO_Pin_6,(BitAction)((Cmd&0x40)>>6)); //D6GPIO_WriteBit(GPIOA,GPIO_Pin_5,(BitAction)((Cmd&0x20)>>5)); //D5GPIO_WriteBit(GPIOA,GPIO_Pin_4,(BitAction)((Cmd&0x10)>>4)); //D4GPIO_WriteBit(GPIOA,GPIO_Pin_3,(BitAction)((Cmd&0x08)>>3)); //D3GPIO_WriteBit(GPIOA,GPIO_Pin_2,(BitAction)((Cmd&0x04)>>2)); //D2GPIO_WriteBit(GPIOA,GPIO_Pin_1,(BitAction)((Cmd&0x02)>>1)); //D1GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)((Cmd&0x01))); //D0*/
}/* -----------------------------------检测忙信号-------------------------------------------*/
void LCD1602_BusyWait(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E)
{GPIO_InitTypeDef GPIO_InitStructure_LCD1602_D7;GPIO_InitStructure_LCD1602_D7.GPIO_Pin = GPIO_Pin_Dx << 7;GPIO_InitStructure_LCD1602_D7.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure_LCD1602_D7.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOx_LCD1602_Dx, &GPIO_InitStructure_LCD1602_D7);GPIO_ResetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RS->GPIO_Pin);GPIO_SetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RW->GPIO_Pin);GPIO_SetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_E->GPIO_Pin);while(GPIO_ReadInputDataBit(GPIOx_LCD1602_Dx,GPIO_InitStructure_LCD1602_D7.GPIO_Pin) == 1);GPIO_InitStructure_LCD1602_D7.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOx_LCD1602_Dx, &GPIO_InitStructure_LCD1602_D7);
}/* -----------------------------------写单个数据-------------------------------------------*/
void LCD1602_WriteDate(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t Date)
{uint8_t PinNo = LCD1602_Get_PinNo(GPIO_Pin_Dx);LCD1602_BusyWait(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW, GPIO_InitStructure_LCD1602_E);GPIO_Write(GPIOx_LCD1602_Dx,(0x00ff&Date)<<PinNo);GPIO_SetBits(GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS->GPIO_Pin);GPIO_ResetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RW->GPIO_Pin);GPIO_SetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_E->GPIO_Pin);GPIO_ResetBits(GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_E->GPIO_Pin);
}/* -------------------------------------在第一行写数据:不能超过16个字符-----------------------------------------*/
void LCD1602_WriteFirstRowSrting(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t* pDate)
{uint8_t Count = 0;LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_ADDH);while(*pDate != 0){LCD1602_WriteDate(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RS, GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,*pDate);pDate++;Count++;}while(Count <= 15){LCD1602_WriteDate(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RS, GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,' ');Count++;}
}/* -------------------------------------在第二行写数据:不能超过16个字符-----------------------------------------*/
void LCD1602_WriteSecondRowSrting(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t* pDate)
{uint8_t Count = 0;LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_ADDL);while(*pDate != 0){LCD1602_WriteDate(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RS, GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,*pDate);pDate++;Count++;}while(Count <= 15){LCD1602_WriteDate(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RS, GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,' ');Count++;}
}/* -------------------------------------写数据:不能超过32个字符-----------------------------------------*/
void LCD1602_WriteString(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t* pDate)
{unsigned char Count = 0;LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_clear);LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_ADDH);while(*pDate != 0){if(Count == 16){LCD1602_WriteCmd(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,LCD_ADDL);}LCD1602_WriteDate(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE,GPIO_InitStructure_LCD1602_RS,GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,*pDate);Count++;pDate++;}
/* while(Count <= 31){LCD1602_WriteDate(GPIOx_LCD1602_Dx,GPIO_Pin_Dx,GPIOx_LCD1602_RWE, GPIO_InitStructure_LCD1602_RS, GPIO_InitStructure_LCD1602_RW,GPIO_InitStructure_LCD1602_E,' ');Count++;}*/
}/* -----------------------------------确定管脚的排号,计算需要的移位-------------------------------------------*/
uint8_t LCD1602_Get_PinNo(uint16_t GPIO_Pin_Dx)
{uint8_t PinNo = 0;while(GPIO_Pin_Dx > 1){PinNo++;GPIO_Pin_Dx = GPIO_Pin_Dx >> 1;}return PinNo;
}
2.头文件
#ifndef _LCD1602_H
#define _LCD1602_H/*-----------------------------------使用说明------------------------------------------*/
/*---------------------------------------------------------------------------------------
------------VDD:接小于4.5V的电压
------------D0-D7:需要在同一组GPIOx,并且连续低位到高位
------------RS、RW、E:需要在同一组GPIOx
-----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------*//* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"/*显示模式指令*/
#define LCD_Display_mode 0X38 //设置16*2显示、5x7点阵、8位数据解口/*显示开关及光标设置*/
#define LCD_shows0 0X08 //关显示、不现实光标、不闪烁光标
#define LCD_shows1 0X0C //开显示、不显示光标、不闪烁光标
#define LCD_shows2 0X0E //开显示、显示光标、不闪烁光标
#define LCD_shows3 0X0F //开显示、显示光标、闪烁光标/*字符指针设置*/
#define LCD_cursor1 0X04 //写一个字符、地址指针减1
#define LCD_cursor2 0X05 //写一个字符、地址指针减1并屏幕右移
#define LCD_cursor3 0X06 //写一个字符、地址指针加1
#define LCD_cursor4 0X07 //写一个字符、地址指针加1并屏幕左移/*清屏指令*/
#define LCD_clear 0x01 //清除所有显示/*忙状态字*/
#define LCD_WAY 0x80 /*宏定义显示起始地址*/
#define LCD_ADDH 0X80 //第一行地址0x80-0xA7
#define LCD_ADDL 0XC0 //第二行地址0xC0-0xE7/*函数定义*/
void LCD1602_Init(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E);void LCD1602_WriteCmd(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t Cmd);void LCD1602_BusyWait(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E);void LCD1602_WriteDate(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t Date);void LCD1602_WriteFirstRowSrting(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t* pDate);void LCD1602_WriteSecondRowSrting(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t* pDate);void LCD1602_WriteString(GPIO_TypeDef* GPIOx_LCD1602_Dx,//D0--D7的GPIOxuint16_t GPIO_Pin_Dx,//D0--D7引脚的起始位置、即D0的管脚号GPIO_TypeDef* GPIOx_LCD1602_RWE,//RS、RW、E的GPIOxGPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RS,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_RW,GPIO_InitTypeDef* GPIO_InitStructure_LCD1602_E,uint8_t *pDate);uint8_t LCD1602_Get_PinNo(uint16_t GPIO_Pin_Dx);#endif
LCD-QC1602A v2.0相关推荐
- MY-IMX6-EK200 Linux-4.1.15 测试手册 v2.0(4)
[接上一章节MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(3)] 2.20 RTC 测试 [测试说明]:读取并设置时间,断电重启后检查时间是否正确 [接口标识]:无 [系统设 ...
- c# .netframwork 4.0 调用 2.0时报错 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
"System.IO.FileLoadException"类型的未经处理的异常在 XXX.dll 中发生 其他信息: 混合模式程序集是针对"v2.0.50727" ...
- 【★更新★】高性能 Windows Socket 服务端与客户端组件(HP-Socket v2.0.1 源代码及测试用例下载)...
HP-Socket 以前为某大型通信项目开发了一套通用 Windows Socket TCP 底层通信组件,组件代号为 HP-Socket.现在把 HP-Socket 的所有代码向大众公开,希望能对大 ...
- MMDetection V2.0发布!速度精度全面提升,现有检测框架最优
本文授权转自知乎作者陈恺,https://zhuanlan.zhihu.com/p/145084667.未经作者许可,不得二次转载. MMDetection V1.0 版本发布以来,我们收到了很多用户 ...
- python2.0正式发布时间_终于来了!!Pyston v2.0 发布,解决 Python 慢速的救星
给大家推荐本书<PyCharm中文指南>,把各种 PyCharm 的高效的使用技巧用GIF动态图的形式展示出来.有兴趣的可以看它的在线文档:http://pycharm.iswbm.com ...
- 小程序 a标签_微慕WordPress小程序增强版V2.0新版上线
2020年7月10日,我进行了一场微信小程序的直播,直播主题:微慕小程序增强版v2.0版新功能说明, 在直播里对微慕增强版v2.0版全面阐述了新版本增加的功能. 微慕小程序增强版定位是使用wordpr ...
- MMDetection V2.0:更快更强的通用目标检测平台
MMDetection V1.0 版本发布以来,我们收到了很多用户的反馈,其中有不少有价值的建议,同时也有很多开发者贡献代码,和我们一起不断完善.经过 2 个月的酝酿,再经过 3 个月的开发和打磨(也 ...
- AI大事件 | OpenAI员工离职创立机器人新公司,spaCy v2.0.0发布
呜啦啦啦啦啦大家好呀,又到了本周的AI大事件时间了.过去的一周中AI圈都发生了什么?大佬们互撕了哪些问题?研究者们发布了哪些值得一读的论文?又有哪些开源的代码和数据库可以使用了?文摘菌带你盘点过去一周 ...
- 网站SEO优化、IIS日志分析工具 IISLogViewer V2.0 发布
2019独角兽企业重金招聘Python工程师标准>>> PS:为了有个响亮些的名字,软件中文名更名为:点格网站日志分析器 本次发布IIS日志分析工具[IISLogViewer] V2 ...
- 梦心日记本V2.0完工
不敢想象我这一个月多是怎么过来的,除了白天上班和周末有时候出去玩之外我一般都是宅在宿舍做这个梦心日记本V2.0 .自从上次V1.0的版本放出去之后受到论坛很多网友的鼓励和支持,也有不少人提出宝贵的意见 ...
最新文章
- matlab计时,暂停
- 在php中type有几种属性,HTML表单之input元素的23种type类型
- SAP Fiori Elements - smart field id generation
- 扫盲贴|如何评价一款App的稳定性和质量?
- Spring核心技术原理-(2)-通过Web开发演进过程了解一下为什么要有Spring AOP?
- vue保存页面的值_vue前端页面跳转参数传递及存储
- spring jpa mysql集群_微框架:Springboot+Jpa+mysql零基础上手班
- html 5实用特性之data属性
- 【论文研读】【医学图像分割】【BCRNN】Fine-grained Recurrent Neural Networks for Automatic Prostate Segmentation ...
- ABP默认表结构解析
- oracle analyze失效,ORACLE: Analyze Table 失敗
- php excel速度慢,window_win10双击打开excel太慢了的三种解决办法,win10双击打开excel文件慢该怎么 - phpStudy...
- 短信网关在短信信息服务中的作用(转)
- 新版Vue项目配置项目名称-publicPath-前端_v1.0.2
- SplashScreen踩到的坑
- 就让烟花来代替我对你的祝福叭 ~ 【生日快乐-简单烟花祝福特效】
- 华为刀片服务器系统安装,FusionServer Pro E9000融合架构刀片服务器
- jenkins之插件下载方法
- npm报错`webpack-dev-server --inline --progress --config build/webpack.dev.conf.js`
- 三、SM1P步进电机控制器操作说明
热门文章
- Tableau图表 | 3、区域图/面积图/折线图
- 动态规划---石子游戏
- 【hadoop生态之Hbase】HBASE简介【笔记+代码】
- ROS2知识(2):网络设施
- CodeForces - 1413C Perform Easily(双指针)
- NVM(NonVolatile Memory)(非易失性内存)
- python爬网易云_python爬网易云音乐-知了汇智
- Ubuntu16.04下使用VLC media player播放器实现倍速播放
- Android Java(2015-6-18 15:28、2016-1-30 21:18、2016-5-31 11:20)
- uva 10977 Enchanted Forest 魔幻森林