- 博客(22)
- 资源 (2)
- 收藏
- 关注
原创 MCU开发---MCU跟DEVICE通讯的过程
第一步:MCU把数据放到发送数组第二步:MCU超时等待数组的数据发送完成第三步:MCU超时等待接收DEVICE应答的数据MCU的状态分为:SEND_FREE:发送空闲SEND_BUSY:正在发送数据SEND_FAIL:发送失败(超时)SEND_SUCCESS:发送成功GET_BUSY:正在接收数据GET_FAIL:接收失败(超时)GET_SUCCESS:接收成功unsigned char Normal_SendGet(unsigned char *status,
2022-02-23 16:23:38
498
1
原创 EC20调试过程备份
1、模块通电如图,将单片机引脚(VBAT_EN)拉低,即可给EC20供3.8V电源。2、模块开机如图,单片机引脚拉高500ms,即可让模块开机。
2022-01-21 17:14:11
5427
原创 FTP命令 FTP响应码
FTP命令命令 描述 ABOR 中断数据连接程序 ACCT<account> 系统特权帐号 ALLO<bytes> 为服务器上的文件存储器分配字节 APPE<filename> 添加文件到服务器同名文件 CDUP<dirpath> 改变服务器上的父目录 CWD<dirpath> 改变服务器上的工作目录 DELE<filename> ...
2021-12-30 18:52:17
1220
原创 SPI SPI2 DMA 驱动W5500
#include "hardware_w5500.h"#include "w5500.h"#include <stdio.h>#include "delay.h"#include "SPI2_DMA.h"const uint8 mac[6]={0x00,0x08,0xdc,0x11,0x11,0x15};const uint8 lip[4]={192,168,100,111};const uint8 sub[4]={255,255,255,0};const uint8 gw[4
2021-09-01 10:19:05
1594
原创 STM32 SPI DMA例程
#include "sd_hardware.h"#include "SPI1_DMA.h"static SPI_InitTypeDef SPI_InitStructure;//=============================================================================//芯片外设初始化//=======================================================================..
2021-09-01 10:18:02
2173
原创 电磁炉的软硬件设计
电磁炉已经是市面上相当成熟的产品了,今天笔者就和大家来聊一聊电磁炉的工作和控制原理。电磁炉电磁炉,一听就知道用到的是电磁原理。那么什么是电磁原理呢?在学习物理的时候,我们知道了电能生磁,磁能生电。所谓电生磁就是用一条直的金属导线通过电流,那么在导线周围的空间将产生圆形磁场。导线中流过的电流越大,产生的磁场越强。磁场成圆形,围绕导线周围。磁场的方向可以根据“右手螺旋定则”又称 “安培定则一” 来确定:用右手握住直导线,让大拇指的方向指向电流的方向,那么四指弯曲的方向就是磁场方向。所谓磁生电就是
2021-08-03 13:56:49
1573
原创 记录一下 模块的编译过程
Linux驱动加载方式:1.编译进内核。2.编译为模块,内核加载/卸载。2、驱动源码和Makefile:驱动源码:hello.c#include <linux/init.h>#include <linux/module.h>static int hello_init(void){ printk(KERN_WARNING"Hello, world !\n"); return 0;}static void hello_exi...
2020-07-19 14:32:26
156
原创 那些linux学习走过的弯路
今天用终端安装了vim。很简单,一条指令即可:sudo apt-get install vim既然后安装,那当然就有删除。很简单,另一条指令即可:sudo apt-get remove vim安装了vim之后,马上就有了我的第一个C文件:hello world首先 vim main.c很简单的一段代码:#include <stdio.h>void main(void){ printf("Hello World!");}写代码的时候,用的TAB键居然留出了一.
2020-06-19 17:16:07
167
原创 跟着左神学linux
首先要感谢原子哥app,上面有linux的视频教学。然后要感谢左神,男神,教学视频做的很好。虽然是看视频,却像自己在所实验一样。听过今晚有毕业季听听老男孩的故事,一定不会错过的。今天学习的是第一期 手把手教你学Linux之Ubuntu入门篇。一共有19讲,共20个课时。早上4点半起床搭车去上班,在公交转地铁转班车的路上,一直觉得这段时间如果只是睡在路上,就很浪费,毕竟一天之计在于晨。于是我打开了我的原子哥app,首先看到的就是正点原子Linux系列课程专栏,大大的免费二字映入我的眼.
2020-06-18 09:05:00
263
原创 关于回调函数的打比方说明
打个比方说明:一个金融机构提供理财服务,理财种类包括证券、基金、股票等,这些有用户自己决定。那么提供理财服务就相当于库函数,购买哪种理财产品,用用户决定,也就是回调函数;用户告诉金融机构购买哪种理财产品,也就是把回调函数传入库函数的动作,称为登记回调函数。...
2020-06-13 09:19:42
272
原创 freeRTOS是一个可裁剪的小型RTOS系统
如题。一直不太明白什么叫可裁剪。今天学习了FreeRTOSConfig.h文件,也算是有一定的了解了。这里面基本上都是一些宏定义,有“INCLUDE_”、"config"这两种开头的宏,要的功能定义为1不要的功能定义为0,就可以实现各种任务、队列、信号量等等的裁剪了。...
2020-06-13 06:55:07
1344
原创 freeRTOS内存管理
heap_1:用于任务、消息队列、列表建立后不再删除。八字节对齐:申请的内存大小为8的倍数,不够的会对齐为8的倍数。 内存堆的可用起始地址会八字节对齐。heap_2:在heap_1的基础上增加了内存清理,可以用于任务多次创建、删除。 缺点:没有内存碎片处理机制。 每申请一个内存块,前面都会在前面增加一个8字节的结构体,记录内存头和内存尾及内存大小。 需要找到合适大小的内存...
2020-06-13 06:40:19
338
原创 PendSV
学习freeRTOS有一段时间了,对freeRTOS的了解不多,如下:freeRTOS是一个免费开源的嵌入式实时操作系统,能在小RAM的单片机上运行。freeRTOS可以创建很多很多的任务(只要RAM足够大),至于怎么创建,复制下面的函数吧!!! #define START_TASK_PRIO 1 //任务优先级 #define START_STK_SIZE 128 //任务堆栈大小TaskHandle_t StartTask_Handle...
2020-06-11 10:45:49
677
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人