随笔分类 -  STM32开发笔记

摘要:该文章是针对于串口通讯过程中快速定义命令而写的,算是我自己的一个通用化的平台,专门用来进行串口调试用,莫要取笑 要处理串口数据首先是要对单片机的串口中断进行处理,我的方法是正确的命令必须要在命令的结尾处同时带有回车和换行,处理过程如下 //串口接收缓冲区u8 serial_Buffer[SER... 阅读全文
posted @ 2015-04-18 22:33 邓小俊 阅读(2858) 评论(0) 推荐(0)
摘要:前面说了TCP客户端通讯,这一篇来说说单片机作为服务器的通讯方法 tcp客户端和服务器的链接做大的不同在于服务器是不需要主动链接谁的,他只需要绑定在自己得一个特定的端口之上,等别人来连接就好了,先创建任务 //创建TCP服务器线程//返回值:0 TCP服务器创建成功// 其他 TC... 阅读全文
posted @ 2015-04-18 17:10 邓小俊 阅读(1496) 评论(0) 推荐(0)
摘要:既然udp说完了,那接下来自然就是TCP通讯了,今天说说TCP客户端通讯,也就是单片机作为客户端,主机PC作为服务器 相比于udp而言,tcp增加了一个连接服务器的流程,首先还是创建tcp_client任务 //创建TCP客户端线程//返回值:0 TCP客户端创建成功// 其他 T... 阅读全文
posted @ 2015-04-18 17:04 邓小俊 阅读(1809) 评论(0) 推荐(0)
摘要:前面移植了lwip之后只是简单地做了一个dhcp的程序,但是实际工作中经常要用来通讯,那今天就来讲一讲怎么用lwip来进行UDP通讯 要使用数据通信首先第一步得知道lwip是怎么样保存数据的,在使用netconn数据包进行通讯的时候,netbuf是主要的数据结构,该数据结构的构成如下struct... 阅读全文
posted @ 2015-04-18 16:59 邓小俊 阅读(4312) 评论(0) 推荐(1)
摘要:前面小玩了一下ucos和lwip,但是都还不是真正的网络多任务,真正的网络多任务应该是什么样子的呢?应该是有一个专门的任务负责网络的通讯,他负责将数据发送出去,将数据接收回来,而其他的需要用到网络的任务与这个任务通讯,这才是能够极大提升网络效率的办法,lwip支持这种办法,不过移植起来就比较磨人了... 阅读全文
posted @ 2015-04-16 23:21 邓小俊 阅读(6003) 评论(0) 推荐(0)
摘要:之前在裸机环境下移植了lwip,功能还是很强大的,但是就我看来,这和uip其实差别也不大,其实lwip更强大的功能需要在操作系统之下才能发挥出来,今天就来做这个 首先我们需要移植操作系统,系统选择ucos2.91,移植过程网上都有,我就写点不同的 配置文件修改如下/* --------------... 阅读全文
posted @ 2015-04-16 22:43 邓小俊 阅读(2515) 评论(0) 推荐(0)
摘要:前面移植了LWIP,并且简单的实用了DHCP的功能,今天来使用一下实际的数据通讯的功能 首先是实现TCP客户端,我先上代码#ifndef __TCP_CLIENT_H_#define __TCP_CLIENT_H_#include "network.h"//连接状态enum tcp_client_... 阅读全文
posted @ 2015-04-01 22:01 邓小俊 阅读(18092) 评论(3) 推荐(2)
摘要:之前我们使用UIP实现了tcp和udp通讯今天来说说UIP的实现流程,当然,这篇文章里面只会涉及tcp和udp,暂时还没办法说DHCP,因为UIP的DHCP实现使用了协程的概念,下一章将协程之后再说DHCP.void uip_init(void){ for(c = 0; c destipaddr... 阅读全文
posted @ 2015-04-01 21:07 邓小俊 阅读(2073) 评论(0) 推荐(0)
摘要:LWIP是一款开源的嵌入式网络协议栈,支持的功能很多,而且能在多任务环境下和单任务裸机环境下跑,今天说说他的移植过程,芯片为STM32,网卡为ENC28J60,无操作系统 首先下载LWIP的源代码,我下载的是1.4.1的源码,下载后解压,文件结构如图 将这四个目录中的文件全部拷贝到工程中,API是... 阅读全文
posted @ 2015-03-30 23:23 邓小俊 阅读(15503) 评论(0) 推荐(0)
摘要:UIP是单片机界联网的一个很好地选择,移植这个库有点复杂,首先是第一步,网卡驱动要写好,使用的网卡芯片为ENC28J60,驱动可以再工程包里面找到//配置网卡硬件,并设置MAC地址 //返回值:0,正常;1,失败;u8 tapdev_init(u8* macaddr){ u8 ... 阅读全文
posted @ 2015-03-28 23:34 邓小俊 阅读(7650) 评论(0) 推荐(0)
摘要:使用FATFS只是完成了一个基本的文件读写,有时候我们需要扩展一些功能,比如MP3实验,需要上一曲下一曲的切换,扩展的代码如下//显示目录下所有文件u8 ShowFileList(u8* dirPath){ u8 *pname; //带路径的文件名,最终生成的文件名 ... 阅读全文
posted @ 2015-03-28 22:57 邓小俊 阅读(2476) 评论(0) 推荐(0)
摘要:图片解码首先是最简单的bmp图片解码,关于bmp的结构可自行查阅,代码如下#ifndef __BMPDECODE_H_#define __BMPDECODE_H_#include "ff.h"#include "lcd.h"#include "stdlib.h"#include "usb_type.... 阅读全文
posted @ 2015-03-28 22:52 邓小俊 阅读(8252) 评论(0) 推荐(0)
摘要:USB设备可以定义一个复合设备,复合设备分两种,一种是一个设备多个配置,还有一种是一个配置多个接口,在本例中采用一个配置多个接口的方式 首先修改设备描述符,标准设备描述符和报告描述符都不需要修改,只需要修改配置描述符即可//usb配置描述符const u8 DinkUsbConfigDescrip... 阅读全文
posted @ 2015-03-28 22:32 邓小俊 阅读(11506) 评论(0) 推荐(0)
摘要:该文档使用USB固件库,在其基础上进行了自己的定制,完成了一个USB-HID设备,首先是usb_desc.c文件,里面存放了usb各种描述符的存在#include "usb_desc.h"//usb标准设备描述符const u8 DinkUsbDeviceDescriptor[DINK_USB_SI... 阅读全文
posted @ 2015-03-22 18:19 邓小俊 阅读(7064) 评论(1) 推荐(1)
摘要:Iap,全名为in applacation programming,即在应用编程,与之相对应的叫做isp,in system programming,在系统编程,两者的不同是isp需要依靠烧写器在单片机复位离线的情况下编程,需要人工的干预,而iap则是用户自己的程序在运行过程中对User Fla... 阅读全文
posted @ 2015-03-13 23:34 邓小俊 阅读(13310) 评论(8) 推荐(4)
摘要:HC_SR04是一款使用较为广泛的超声波测距模块,模块图如下该模块具有四个引脚,分别为VCC GND TRIG ECHO,其中VCC GND为供电脚TRIG为测距触发引脚,ECHO为测距输入引脚该模块的驱动模式为控制口发一个 10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器... 阅读全文
posted @ 2014-10-07 23:26 邓小俊 阅读(3079) 评论(0) 推荐(0)
摘要:RDA5820 是北京锐迪科推出的一款集成度非常高的立体声 FM收发芯片。该芯片具有以下特点: FM 发射和接收一体 支持 65Mhz~115Mhz的全球 FM接收频段,收发天线共用。 支持 IIC/SPI接口 支持 32.768K晶振 数字音量及自动 AGC控制 支持立体声/单声道切换... 阅读全文
posted @ 2014-10-07 23:22 邓小俊 阅读(3508) 评论(0) 推荐(0)
摘要:SD卡是嵌入式设备中很常用的一种存储设备,体积小,容量大,通讯简单,电路简单所以受到很多设备厂商的欢迎,主要用来记录设备运行过程中的各种信息,以及程序的各种配置信息,很是方便,有这样几点是需要知道的SD 卡是基于 flash的存储卡。SD 卡和 MMC卡的区别在于初始化过程不同。SD卡并不是我们通常... 阅读全文
posted @ 2014-10-06 20:50 邓小俊 阅读(20582) 评论(0) 推荐(1)
摘要:Stm32具有IIC接口,接口有以下主要特性多主机功能:该模块既可做主设备也可做从设备主设备功能C地址检测产生和检测7位/10位地址和广播呼叫支持不同的通讯速度状态标志:发送器/接收器模式标志字节发送结束标志总线忙标志错误标志2个中断向量可选的拉长时钟功能具单字节缓冲器的DMA虽然很多人说STM的硬... 阅读全文
posted @ 2014-10-06 20:38 邓小俊 阅读(12495) 评论(1) 推荐(0)
摘要:MPU-60X0 是全球首例 9轴运动处理传感器。它集成了 3轴 MEMS陀螺仪, 3轴 MEMS加速度计,以及一个可扩展的数字运动处理器 DMP(Digital Motion Processor),可用 I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其 I2C或 SPI接口输... 阅读全文
posted @ 2014-10-06 20:30 邓小俊 阅读(3495) 评论(0) 推荐(1)