工作
clear code
一路向前,莫问前程,前途似锦
展开
-
【MA35D1】buildroot 编译使用经验
NuMicro® MA35D1系列为一颗异核同构的多核心微处理器,适用于高端 Edge IIoT Gateway。它是基于双核 64 位 Arm® Cortex-A35 内核,执行速度可达 800 MHz,并搭载一颗 180 MHz Arm Cortex-M4 内核。基于此高性能内核,MA35D1 系列有助于 Tiny AI/ML 边缘运算。原创 2024-09-02 21:39:01 · 1201 阅读 · 0 评论 -
GPIO_Mode_AF_PP 与 GPIO_Mode_Out_PP区别
关于GPIO 输出区别原创 2022-08-02 13:39:53 · 10847 阅读 · 0 评论 -
文件打开模式区别
文件打开模式区别原创 2022-06-20 08:37:48 · 1194 阅读 · 0 评论 -
RTOS—文件打开、删除操作细节研究
文章目录RTOS—文件打开、删除操作环境描述操作1:尝试多次打开一个文件,观察现象结果操作2:尝试多次打开文件,未进行关闭操作进行删除文件操作3:尝试打开10次文件,关闭9次操作,进行删除文件RTOS—文件打开、删除操作环境描述RTOS:RT-Thread 操作系统File System: Yaffs2操作1:尝试多次打开一个文件,观察现象结果void file_unlink_test(void){#define RH_PATH "/rh1200/test/file.dat"#define原创 2021-12-30 15:19:11 · 609 阅读 · 0 评论 -
pb3-protobuf 格式-上传 网络信息内容
pb3-protobuf 格式-上传 网络信息内容message CollectorInfo{ string Code = 1; //采集器编码05600001、10000001 CollectorStyle Type = 2; //采集器类型RH560A、RH1000 BoardStyle BoardType = 3; //采集板类型 NetStyle NetType = 4;原创 2021-11-22 14:36:09 · 1293 阅读 · 0 评论 -
C语言输出正弦波形
文章目录int main(void){ int i; int ft = 5; /* 周期 hz */ int fs = (20*2.56); /* 采样频率*/ /* generate data */ uint32_t data_len = (4*1024); float *input_data = (float *)malloc(data_len * sizeof(float)); if (NULL == input_data) { printf("%s(原创 2020-09-15 17:08:06 · 4408 阅读 · 0 评论 -
工作总结—空闲中断关闭使用
文章目录问题描述问题描述使用LPUART1 作为接收中断数据,同时使用空闲中断,关闭中断的操作,只关闭的LPUART1 的接收中断,没有关闭空闲中断,导致中断还一直进去,if (uart->UartHandle.Instance == LPUART1) { __HAL_UART_DISABLE_IT(&uart->UartHandle, UART_IT_IDLE);} ...原创 2020-09-02 18:35:32 · 559 阅读 · 0 评论 -
关于-常用串口打印数据函数-printf_debug_log
串口打印函数-printf_debug_log记录一下自己常用的串口打印函数,常用语抓包分析。void printf_debug_log(uint8_t *buff, uint32_t len,bool flag){ static uint32_t print_cnt = 0; if(print_cnt ==0) { if(flag) { printf("send uint8_t print_packet[%d]= {\r\n", len); } else { printf(原创 2020-08-13 20:11:28 · 1252 阅读 · 1 评论 -
关于 ping-pong buff
文章目录ping-pong (乒乓)buff介绍 :什么是pingpong ?使用场景:什么时候需要pingpong?程序实现步骤ping-pong (乒乓)buff介绍 :什么是pingpong ?ping-pong buffer 也叫双缓存 double buffer, (必须是两个)就是一个缓存在写入的时候, 另一个缓存同时在处理的结构. 用来提高计算机运行速度, 在显示数据处理中常常用到。一句话描述:pingpong是一种数据缓存的手段,通过pingpong操作可以提高数据传输的效率。使原创 2020-07-08 20:09:55 · 5636 阅读 · 0 评论 -
STM32+复位学习总结
文章目录复位电源复位系统复位备份域复位API相关函数接口使用复位标志类型获取清除中断标志位复位共有三种类型的复位,分别为系统复位、电源复位和备份域复位电源复位只要发生以下事件之一,就会产生电源复位:欠压复位 (BOR)。退出待机模式时。退出关断模式时。欠压复位,包括上电或掉电复位 (POR/PDR),将所有寄存器设置为其复位值,备份域除外。退出待机模式时,VCORE 域的所有寄...原创 2020-04-24 20:13:05 · 3185 阅读 · 1 评论 -
STM32+看门狗使用心得
STM32 + 看门狗看门狗介绍实际的MCU应用系统中,由于常常会受到来自外界的某些干扰,有可能造成程序跑飞而进入死循环,从而导致整个系统的陷入停滞状态并且不会自动回复到可控的工作状态。所以出于对MCU运行的安全考虑,便引入了一种专门复位监控电路WatchDog,俗称看门狗。看门狗电路所起的作用是一旦MCU运行出现故障,就强制对MCU进行硬件复位。独立看门狗 (IWDG)此器件具有一个嵌入...原创 2020-04-24 19:57:21 · 2151 阅读 · 0 评论 -
STM32空闲中断-USART_IT_IDLE使用(不使用DMA方式)
文章目录串口中断介绍串口简介串口通信过程空闲中断介绍代码案列串口配置中断接收回调函数数据处理串口中断介绍串口简介UART(Universal Asynchronous Receiver/Transmitter)通用异步收发传输器,UART 作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。是在应用程序开发过程中使用频率最高的数据总线。UART 串口的特点是将数据一...原创 2020-01-16 17:19:09 · 13101 阅读 · 0 评论 -
STM32 查看系统工作主频
文章目录SystemCoreClock全局变量SystemCoreClock全局变量通过打印 SystemCoreClock全局变量的值,就能观察系统当前主频。/** @addtogroup STM32L4xx_System_Private_Variables * @{ */ /* The SystemCoreClock variable is updated in three ...原创 2019-12-31 15:56:54 · 4693 阅读 · 0 评论 -
嵌入式软件分层架构
文章目录硬件代理模式抽象问题硬件代理模式硬件代理模式创建软件单元负责访问硬件的一部分、硬件压缩封装以及编码实现。抽象硬件代理模式使用结构体封装硬件设备,硬件有可能是内存、传感器设备、IO设备等,但无论什么样的设备,硬件代理的作用就是隐藏硬件的操作细节,向客户应用程序提供初始化、配置、读写数据、打开与关闭等操作的编程接口。问题...原创 2020-06-27 23:47:36 · 2746 阅读 · 1 评论 -
工作-离线线程添加保护机制
文章目录离线数据上传线程:添加保护机制策略prune_index_from_head 索引文件裁剪,删除第一个索引添加保护,让出使用权离线数据上传线程:添加保护机制策略prune_index_from_head 索引文件裁剪,删除第一个索引/* attention: 1.当只有1个数据和1个索引头时,数据上传失败,此时不应该删除索引头,故加入(0 == buf)的判断。此时(0 != buf) 2.(0 == buf)时,此时只有索引没有数据,一定要删除索引,否则会导致不原创 2020-05-26 11:18:00 · 302 阅读 · 0 评论 -
工作经验分享STM32L4+系列DMA使用
文章目录关于STM32L4&L4+系列DMA使用STM32L4系列DMA资源分配图关于L4+系列DMA使用关于STM32L4&L4+系列DMA使用STM32L4系列DMA资源分配图由资源分配图可以得出STM32L4外设使用DMA通道的情况。关于L4+系列DMA使用STM32L4+系列是L4系列的升级,具体描述可见ST官网,使用背景:MCU由STM32L4ZGT6升...原创 2019-12-12 20:31:55 · 3022 阅读 · 0 评论 -
modbus-RTU学习
文章目录参考Modbus 协议简介查询—回应周期modbus RTURTU 模式RTU 帧modbus功能码简述功能码说明寄存器地址分配寄存器种类说明PLC地址和协议地址区别寄存器PLC地址寄存器协议地址应用举例-读保持寄存器03H模拟数据响应参考MODBUS协议整理——汇总Modbus 协议简介Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经...原创 2019-08-05 16:48:37 · 2491 阅读 · 0 评论 -
yaffs文件系统-内存挂载分区优化处理方案:针对于小内存
文章目录yaffs文件系统开发遇到的问题解决方案yaffs文件系统Yaffs是专门针对NAND闪存特性设计的文件系统。其久经考验的主要功能是:快速-通常比替代品快得多易于移植(当前已移植到GNU / Linux,WinCE,eCOS,pSOS,VxWorks和各种裸机系统)日志结构化,可提供损耗平衡并使其非常坚固支持多种闪存几何结构,包括2K字节和512字节页面NAND闪存芯片 支持MLC和SLC闪存快速安装-几乎立即启动通常使用比同类文件系统更少的RAM适用于大多数情况的灵活许可开发原创 2020-05-18 15:15:29 · 632 阅读 · 1 评论 -
STM32+HardFault 处理方法
STM32+HardFault 处理方法HardFault 触发的原因数组越界操作;内存溢出,访问越界;堆栈溢出,程序跑飞;中断处理错误;解决办法1:使用AC6 编译器MDK旧版本使用的是AC5编译器,对语法检测并不是很好,建议使用高版本MDK使用最新的AC6编译器,在预编译阶段对代码语法有比较严格的检查,特别是数组成员访问有很好的检查效果。新版编译器(AC6)使用效果#de...原创 2020-05-18 14:05:25 · 2342 阅读 · 1 评论 -
yaffs文件系统-open文件失败,修改nandflash驱动配置
文章目录问题描述drv_nand 驱动配置问题描述使用yaffs文件系统,存储数据时发现竟有打开文件失败的情况,该问题复现的概率较高,一度怀疑是yaffs文件系统有问题,但根本原因其还是配置nandflash的一些参数有出入。drv_nand 驱动配置NAND_HandleTypeDef hnand1 = { .Config.PageSize=2048, .Config.SpareAreaSize=64, .Config.PlaneNbr=2, .Config.PlaneSize=2048,原创 2020-05-18 13:49:44 · 1460 阅读 · 0 评论 -
工作日常总结学习
文章目录备注STM32H7系统时钟定时器中断计算备注主要记录工作当中一些基础知识的累积,方便日后复习。STM32H7系统时钟我们把系统时钟配置分为七个步骤,分别用标号①~⑦表示,详细过程为:① 时钟源参数设置:HSE 或者 HSI 配置。这里我们选择 HSE 为时钟源,所以我们之前必须在 RCC 配置中我们开启 HSE。② 时钟源选择:HSE 还是 HSI。这里我们配置选择器选择...原创 2019-08-06 20:07:24 · 698 阅读 · 0 评论