自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 资源 (3)
  • 收藏
  • 关注

原创 单片机中对通信数据流分包粘包的处理机制

在使用串口或其他通信模块接收协议数据时,是以流的方式接收的,有可能1个协议包分段接收到,也有可能多个数据包一起接收到,这时需要使用通信协议预处理机制,解决分包粘包的问题。基本流程:从通信模块获取字节流,逐个字节输入到预解码模块在初始状态,寻找协议头部标志字节,如果找到,则转入协议内容接收字节,如果协议前部包含长度字段,则先转入到长度字段解码状态在长度字段解码状态,解码长度,获取剩余需要接收的字节数,然后转入协议内容接收状态在协议内容接收状态,如果剩余需要接收字节数为0,或找到协议尾部标志,则预解

2021-02-10 20:30:24 1026

原创 单片机中一种简单的定时器管理模块

单片机开发过程中经常要使用到定时器,对于不需精确定时的流程,可使用本模块提供的定时器进行定时及超时处理本模块管理一组定时器,其它模块可申请分配其中1个定时器,本模块对所有的已被分配的定时器进行计时,达到超时时间时,通过回调函数调用超时处理函数。通过索引定位特定的定时器,定义定时器索引:#define app_timer_hdl_t uint8_t定义:typedef void (*app_timeout_func)(void);//回调函数#define APP_TIMER_TICK_MS 20

2021-02-10 16:23:54 326

原创 stm32 对uart的封装

hal库的uart驱动用起来不太顺手,因此对ll库的uart驱动重新封装,基本流程是将要发送的数据保存到发送fifo,通过发送完成中断驱动发送过程,通过接收完成中断将接收到的数据保存到接收fifo,应用程式查询并读取接收fifo的内容从而完成接收过程封装是对各个uart独立处理的,下文以uart1举例。定义fifo结构体typedef struct{ uint32_t write; uint32_t read; uint8_t *buf;}uart_fifo_t;定义发送,接收fifo:

2021-02-09 11:36:04 538

原创 stm32 手工创建带FreeRTOS的Keil工程

创建新工程,选择设备勾选CMSIS->CORE, Device->Startup配置工程勾选Use MicroLIB编译器设置:连接器设置:建立文件夹和拷贝文件,其中Core(系统文件),Drivers(HAL,LL驱动),Middlewares(FreeRTOS文件)为使用CubeMX创建工程时生成的文件夹,按需拷贝。app为应用程序目录Core\Inc 最小目录文件Core\Src 最小目录文件工程配置编译器设置项inclu

2021-02-08 22:17:58 865

原创 stm32 bootloader 跳转到app

一 相关配置.bootloader和应用程序代码划分 应用程序中断向量表 二 bootloaderbootloader具体功能不详述,最主要的是跳转到应用程序。主要有2点:1. 跳转前,将应用程序的栈顶指针保存到MSP寄存器,应用程序的栈顶指针为地址0x08004000所对应的内容2. 跳转到应用程序的复位向量(0x08004004)#define APP_ADDR 0x08004000typedef void (*func_app)(void);vol..

2021-02-08 18:24:46 2035

sx1280_driver.zip

sx1280 lora 驱动(代码里面定义的名字是SX1278,没有修改过来,不影响)

2021-01-25

stm32 rf radio.zip

stm32 rf lora 驱动

2021-01-25

SX1280Calculator_setup.zip

SX1280Calculator_setup.zip

2021-01-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除