- 博客(60)
- 资源 (30)
- 收藏
- 关注
原创 c++键盘按键监控以及键值表
监控代码int scanKeyboard(){ int in; struct termios new_settings; struct termios stored_settings; tcgetattr(0, &stored_settings); new_settings = stored_settings; new_settings...
2020-04-17 23:53:35
5088
原创 超声波模块HC-SR04调试经验分享
这段时间要用超声波做一个演示实验,就是使用超声波和舵机结合,做一个自动壁障演示实验。就是将超声波接到舵机上,通过转动舵机来获取各个方向到小车的距离,从而控制小车运动,避开障碍物,并寻找最佳路径。整个小车基于航太电子提供的51智能小车,如下图:车前面的超声波模块就是固定在下面的舵机上面的,实际实验时需要将显示屏取下,否则会档到舵机。下面简单说下超声波模块:HC-SR0
2016-03-25 23:36:21
72896
6
转载 字符串与整数、浮点数、无符号整数之间的转换常用函数
atof(将字符串转换成浮点型数)表头文件 #include 定义函数 double atof(const char *nptr);函数说明atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结 束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123
2016-01-13 22:37:50
3969
原创 基于stm32和ESP8266实现wifi模块smartlink功能以及TCP连接
一直想把wifi模块和stm32连接起来,但是网上找了很久,并没有C语言相关的库,只有基于arduino的ESP8266 C++库,这个库是没办法直接给stm32使用的,所以自己动手丰衣足食,自己手动将基于arduino的ESP8266 C++库移植成简单的C库,方便使用,目前这个库实现了基本的功能,可以实现波特率修改,smartlink,断线重连等功能,wifi模块主要运行在STA模式。因为
2016-01-12 16:21:55
19922
原创 C语言模拟C++方式读取串口操作实现
在使用C++编程对串口操作时,经常有用到serialport.read(),serialport.print()之类的函数,而且系统自带接收buf,不用考虑数据漏失的问题,那么在C语言环境下,怎么做呢?特别是51或STM32编程,或者要将C++代码转换成C代码时对这一块也不好移植,下面提供一个API,方便大家使用。首先看接口文件,也就是头文件:serialpoortAPI.h#ifnd
2016-01-12 15:11:28
6387
原创 wifi模块ESP8266_AT arduino 库文件部分方法解析及优化
一直想使用arduino平台来控制ESP8266模块,现在终于差不多实现了,从网上找来了一个相关的库文件,已经实现了大部分功能,但仍有部分功能需要优化,比如smartlink部分未加入。在这里首先感谢ITEAD提供的文章帮助,http://www.arduino.cn/thread-7540-1-1.html。我的平台是arduino uno ,只有一个串口,为了方便仿真,我选择使用软件来
2016-01-05 18:17:58
11321
原创 stm32 TIM1PWM多通道捕获模式测速
因为一个项目的要求,需要测速,之前就想学一下stm32的捕获模式了,借这个机会,刚好利用一下,现在分享出来。硬件:MCU:stm32f103zet6平台:航太电子流行7号智能小车显示:mini12864软件:语言:C语言IDE:keil5测速部分环境是典型的测速方法,测速码盘加光电对管,单片机采集光电对管模块传来的PWM波,要对两个轮子测速,实际速度
2015-12-27 20:25:37
22134
8
原创 STM32GPIO推挽模式注意
STM32推挽模式:_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的这种模式用的情况还是比较多的,但是有个注意的地方,不是所有情况都适用于推挽模式,比如当外部有外加上拉电阻时,若使用这种模式,无论输出什么电平,外部IO一直位高电平特别是有几个引脚连接到了仿真器接口,一般是有上拉的,在测试时要注意这几个IO口 GPIO_InitStruct
2015-10-25 23:28:21
2023
原创 工程师表白神器--炫彩心形DIY
这段时间做了个玩具,用彩色LED搭建了一个心形图案,并用STC51单片机驱动,实现心形LED炫彩闪动,超级炫酷的,总工有32个灯,使用了单片机的所有IO口,可以灵活控制每个LED的闪烁,然后配上适合的音乐,绝对是屌丝工程师表白神器
2015-10-23 10:44:13
8169
原创 51单片机单串口同时实现AT指令和调试信息输出
很多外部模块是使用串口的方式与单片机通信的,但有的单片机只有一个串口,且不能硬件仿真,比如我使用的STC90C516,如果将唯一的串口给了外部模块,就不能打印调试信息了。不过如果是使用AT指令只这样的模块,比如蓝牙SPP,WiFi模块,是使用AT指令的方式通信的我们可以保留单片机串口与PC的连接,串口同时与模块连接,这样单片机的发送信息同时被模块和PC收到了。模块只对AT指令有反应,对其他格式不正确的指令无反应,
2015-10-20 22:45:29
6992
2
原创 keil C51使用串口时程序跑死的问题
在使用STC51单片机的串口时,有时候会进入一种很奇怪的情况,就是程序进入了一下子跑死了,初始化代码如下:void UsartConfiguration(unsigned int bps){ SCON = 0X50; //设置为工作方式1 10位异步收发器 TL2 = RCAP2L = bps; //set auto reload value TH2 = RCAP2H = bps>
2015-10-17 22:34:29
3572
1
原创 STC单片机timer2捕获模式测频率
在使用STC单片机测频率最常用的方法是在一定时间内计算脉冲个数,这种方式一般需要一个计数器和一个定时器配合,而且对低频信号也不太准确,下面我们可以用到timer2的捕获模式通过测量两个下降沿的时间,来计算频率,这样做仅使用timer2就好了,而且对低频信号测量准确,经实际测试,在100Hz一下时,精度可达0.05Hz。
2015-10-16 11:30:56
10908
3
原创 PID 控制从模拟到数字变换方法
网上有很多对PID算法的讲解,对PID从模拟到数字变换方法也有不少描述,但是就是太多了,导致很多不准确甚至错误的也进来了,导致对初学者很难理解PID算法,特别是对P,I,D这三个参数怎么来的也很模糊,下面给出一种我觉得可以让人信服的计算方法
2015-10-12 21:59:10
2861
原创 基于51单片机modbusRTU从机设计
在了解modbus协议后就是基于该协议的设计了,下面先说一下基于航太电子HTM52单片机的从机设计。设计思想如下:modbus协议是以主从的方式通信的,也就是上位机发送指令,下位机应答机制,发起通信的一直是上位机,下位机只要应答就好了。modbus协议被设计出来是针对PLC应用的,这里我们可以简单的模拟PLC环境,可以在单片机里面设计一块共享区,该区域是上位机和下位机共享的,均可以读取或写入该区域的值,所有的modbus协议都是针对该快区域的操作,下位机也是根据这块区域的值做相应的操作。
2015-10-11 16:43:52
29331
6
原创 Git .gitignore 过滤文件和文夹
1、.gitignore文件格式如下:# 以'#'开始的行,被视为注释. # 忽略掉所有文件名是 foo.txt的文件.foo.t
2015-10-10 12:01:59
2473
转载 modbus通讯协议解析
1.什么是modbus协议,主要应用在哪些方面?(来源于:http://www.emtronix.com/product/ModBus_software.html) Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控
2015-10-09 21:54:56
6595
1
原创 基于HTM-52万能遥控破解
不同型号的遥控器使用不同的红外协议,那怎么做一个万能遥控破解器来实现对所有遥控的破解呢,这里介绍一种简单粗暴的方法。
2015-10-08 21:28:49
1219
原创 单片机串口发送数据帧
很少看到有资料写如何以中断的方式发送一帧数据,如果以等待的发送数据帧,对高速运行的单片机来说是很浪费时间的,下面就介绍一种使用中断方式发送数据帧,操作平台采用51 mcu
2015-09-30 20:35:25
14672
1
原创 TFT液晶屏使用自建的英文字库
现在大部分液晶屏是不带字库的,需要吸入文字的时候,需要像画画那样,一个一个点的写,最简单的方法是需要写某个字符,就对某个字符取模,但这样灵活性太差了,下面介绍一种方法,自建字库以及驱动程式,前台应用时直接调用就好了。首先是建立字库字库的基本组成单元如下的结构体:// ------------------ 英文字模的数据结构定义 ------------------------ //
2015-09-29 21:09:01
3527
原创 git 打标签操作
现在git 提供的windows git客户端已经可以完成大部分日常操作了,但是觉得有个功能很有用但还没做上去,那就是打标签的操作。当有版本更新的时候,打标签就显得很重要了。
2015-09-28 20:08:46
2576
原创 巧妙使用static 为数据打包并发送
只要做过项目的朋友对关键字static应该都有一些了解,但未见了解很全面的。在C语言中,关键字static有以下明显的作用:1.static变量分配到静态内存中,这一点和全局非静态变量相同。2.在函数体,static变量只要不进行修改操作,在被调用过程中其值将保持不变。3.在模块内,全局static变量可以被模块内所有函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量,具有私有特
2015-08-25 13:45:58
1533
1
转载 10种软件滤波方法的示例程序
10种软件滤波方法的示例程序(JKRL) 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();1、限副滤波/* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值 */#define A 10char value;char fil
2015-08-25 13:41:07
739
转载 WinForm窗体及其控件的自适应
原文转自:http://www.cnblogs.com/gguozhenqian/p/4288451.html3步骤:1.在需要自适应的Form中实例化全局变量 AutoSizeFormClass.cs源码在下方 AutoSizeFormClass asc = new AutoSizeFormClass();2.Form_Load事件中
2015-08-09 22:28:49
2797
原创 keil编译后生成的M51文件解析
通过*.m51文件我们可以清楚的看到单片机存储器的使用情况,以及可以看到每个变量包括局部变量的位置。之前碰到一个问题,同样的程序,在small模式下编译后运行没问题,但在large模式下可以编译,但是运行出错。最后查看m51文件,发现了问题,在一个对时序要求很严格的地方声明几个局部变量,这几个局部变量有的被分配到data中,有的分配到xdata,在xdata中的变量访问时间要大于data中,导
2015-07-17 23:17:44
12493
转载 mysql处理海量数据时的一些优化查询速度方法
原文:http://www.itjhwd.com/4588798/最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询
2015-07-17 22:50:35
1558
原创 stm32f103串口实现映射功能
在实际开发中,经常遇到串口的默认输出IO口被其他模块占用了,所以我们要用到串口IO口映射功能,是指将原来实现功能的IO口映射到其他指定IO口,其他不变。具体操作如下:先贴出默认下的串口初始化设置:void USART1Conf(u32 baudRate){ USART_InitTypeDef USART_InitSturct;//定义串口1的初始化结构体 GPIO_InitType
2015-07-01 18:12:27
6134
1
原创 STM32M CUBE实现printf打印调试信息以及实现单字节接收
在写单片机程序时我们一般喜欢使用printf来通过串口打印调试信息,但这个函数是不可以直接使用的,必须做点对库函数的改动。STM32M CUBE是ST官方提供的库以及初始化工具,很好很强大,但是在UART方面值提供了如下函数:HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint
2015-06-28 19:09:37
3263
转载 stm32 M3启动文件解析
本文转载自:http://blog.sina.com.cn/s/blog_69bcf45201019djx.htmlDATA_IN_ExtSRAM EQU 0 ;;1定义是否使用外部SRAM,为1则使用,为0则表示不使用Stack_Size EQU 0x00000400 ;;2定义栈空间大小为0x00000400个字AREA STACK, NOINIT, READWRITE, ALIG
2015-06-27 10:56:51
1388
转载 STM32 GPIO模式介绍
本文转载于 http://blog.sina.com.cn/s/blog_4d1854230101ciz1.html一、GPIO口简介1.1 一般来说STM32的输入输出管脚有以下8种配置方式:输入① 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别② 带上拉输入_IPU ——IO内部上拉电阻输入 ③ 带
2015-06-25 16:03:52
1241
原创 C51中遇到一个有关data与xdata的问题,已解决
环境:我在某个C文件定义了一个结构体变量,然后该变量只是在本文件内被一个函数使用,然后又在中断中调用了该函数,目的是改变一个IO口的输出状态,结果执行时怎么也达不到要的效果。struct BE{ unsigned int CountFR; //定时器计数值,通过改变计数值改变音频频率 unsigned char PWR_time; //开启时间,单位为10mS unsigned
2015-06-04 22:58:20
5076
转载 ORACLE触发器详解
转载自优快云http://blog.youkuaiyun.com/indexman/article/details/8023740/
2014-12-12 08:36:12
523
原创 ORACLE VIEW和SEQUENCE的用法
说下oracle中视图和序列的用法:视图视图是通过对一个或多个表定义查询得到的,视图定义所依据的表被称为基表,说简单点就是视图联合一张或多张表另外成立一张表,可以对这张表进行搜素和DML操作。建立视图 create view terminal_view as (select a.terminal_name, b.pdline_name,c.process_name,d.stage_
2014-12-11 15:12:00
2382
原创 使用JQuery使浏览器内的控件自适应浏览器大小
使用JQuery使浏览器内的控件自适应浏览器大小首先在中加入对jQuery的引用在JS中添加方法window.onresize和window.onload该方法为系统函数,在有触发时自动调用 window.onresize = function () { var Width = document.body.offsetWidth;//读取浏览器的宽
2014-12-09 09:06:21
2017
转载 在windows下编写启动服务的脚本
由于最近系统装了很多的服务,而一些服务只有在特定的时候才会使用到,所以就想到写一个脚本来手动启动服务,而不用在开机的时候自动启动。使用命令行启动服务在cmd下可有两种方法打开,net和sc,net用于打开没有被禁用的服务,语法是:net start 服务名net stop 服务名用sc可打开被禁用的服务,语法是:sc config 服务名 start= dema
2014-11-28 11:05:06
3605
原创 C#软件监控外部程序运行状态
需要外挂一个程序,用于监控另一个程序运行状态,一旦检测到另一程序关闭,就触发一个事件做其他处理。引用的类using System.Diagnostics;//引入Process 类 声明private Process[] MyProcesses;主要处理部分,该段代码可放在定时器中循环检测监控的程序是否启动 MyProcesses = Proc
2014-11-27 16:57:06
5581
原创 TCP/IP异步通讯服务端实现方法
近期做了个TCP/IP异步通讯服务端实现方法,也是在网上胡乱搜索,然找了个自认为比较好的,然后封装一下,供后面自个使用,也供大家参考,如有不好的地方,欢迎指正,谢谢!下面说一下这个方法里面的几个知识点:1、托管这个东西真心好用,虽然不知道具体怎么弄的,托管可以实现一个对象中的方法交由其他对象实现,而且可以同时触发多个方法,组件的触发函数就是由托管实现的,具体实现如下:先声明一个托管
2014-08-18 13:58:11
3035
转载 安装和卸载windows服务
使用名为 InstallUtil.exe 的命令行实用程序,可以快速安装服务应用程序。与在 Visual Studio 中创建的大多数项目不同,Windows 服务项目不能通过按 F5 从开发环境直接运行。 这是因为必须安装项目中的服务后,项目才能运行。手动安装服务从 Windows 的“开始”菜单中,依次选择“Visual Studio 2010”、“Vi
2014-08-14 10:54:10
668
原创 C# 跨线程调用form控件技巧及byte[]与string型相互转换
跨线程调用form控件技巧ss = "OK"; this.BeginInvoke(new MethodSocket(InvokerReadMsg), ss);//this指向本窗体,回调函数InvokerReadMsg, private void InvokerReadMsg(object obj)//在这个函数里面可以直接访问Form控件txtContent
2014-07-25 14:54:34
1240
原创 C#调用天气预报网络服务
本程序通过调用网络上公开的天气预报网络服务来显示某个地区三天的天气,使用到的网络服务地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx,该天气预报 Web 服务,数据来源于中国气象局 http://www.cma.gov.cn/天气图标可至【http://www.webxml.com.cn/images/weathe
2014-07-23 14:37:06
2567
基于STM32的wifi模块连接实现
2016-01-12
串口操作接口
2016-01-12
彩屏demo例程单色刷屏文字显示
2015-09-29
数据打包发送方法
2015-08-25
基于HTM-52万能遥控破解源代码
2015-07-13
uCGUI VS2008直接运行工程文件
2015-07-01
stm32f104 ucosiii ucGUI
2015-06-30
C#TCP/IP同步和异步通信
2014-08-18
基于科大讯飞语音云识别软件
2014-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人