自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (9)
  • 收藏
  • 关注

原创 一、关于串口以队列方式接收数据应用笔记。

对串口以队列方式进行接收数据时的使用分析笔记

2023-03-01 11:44:43 462 1

原创 一、stm32的dac功能输出电压

dac配置使用。

2022-12-14 19:10:39 1461

原创 一、SPI通信时前面几个字节为0x00,后面正常的问题总结

spi通信的前几个字节为0x00的问题。

2022-12-14 17:39:09 1646 2

原创 一、关于回调函数在实例中的应用分析

关于回调函数的应用分析和演示。

2022-11-03 11:54:55 398

原创 一、串口SHELL模式配置分析解读

对原子的串口shell处理方式进行重新整理,解析

2022-09-05 22:57:28 581

原创 一、使用串口处理机制中对于FIFO的处理机制应用的解读

一、FIFO是First Input First Output的缩写,先入先出队列。使用的场景:一般是在不同的时钟域之间的数据传输(简单理解即:一个(读\写)快,另外的一个(读\写)慢的场景中。)本质操作:就是将收的数据存储的一个线性的数组中,通过指针指向该数组的自加1(偏移)来遍历数据,达到读取或者写入的目的。作用:起到缓冲环节,可防止数据的丢失。对数据量大的进行存储,避免频繁的总线操作。并且可满足dma的操作。在fifo中需要理解连个重要成员:宽度:指一次写读操作的数据位数。深度:存储多少

2022-05-07 15:01:15 2053 2

原创 一、对ST的系统时钟的理解与笔记

一、对于系统的启动和初始化流程1.启动流程系统启动文件startup_xx.s进行系统并调用复位中断复位服务程序。在复位中断服务程序里调用SystemInit函数,此函数在文件system_stm32f4xx.c里面之后调用编译器封装好的函数__main ,进入到main中执行用户的函数2.初始化流程在main函数中的重要初始化HAL_Init函数即HAL库初始化函数,在stm32f4xx_hal.c中进行配置。在system_stm32f4xx.c中有关于HSE_VALUE的配置,当时钟不匹配时

2022-04-28 15:50:32 853

原创 一、对MODEBUS RTU方式通信学习笔记

一、首先1、对于寄存器操作的一些宏进行理解。#define SET_BIT(REG, BIT) ((REG) |= (BIT))//设置寄存器的第bit位值为1,SET_BIT(RCC->AHB2ENR,1) 或者 SET_BIT(RCC->AHB2ENR,2) #define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))//清除寄存器的第bit位值为1的值,即将第bit位置0,CLEAR_BIT(RCC->CR, 64) #def

2022-04-27 20:24:27 2333

原创 一、cubeide的使用与笔记

一,应用使用**1.**使用CubeIde 时生成hex或者bin,进行下载配置工程右键》Properties》C/C++ Build 》Settings 》找到Build Steps选项卡,在“Post-build steps”的“Command”输入以下命令生成hex:arm-none-eabi-objcopy "${ProjName}.elf" -O ihex "${ProjName}.hex"生成bin:arm-none-eabi-objcopy "${ProjName}.elf"

2022-04-26 14:42:50 2096

原创 一、单向、循环、双向链表流程的应用的演示。

一、链表流程的演示。(1)主要是链表的初始化流程,以及配置演示。使用的环境为gcc编译环境,环境配置查看往昔文章。(1)单向链表#include <stdio.h>#include <string.h>#include <stdlib.h>//--------------------------------------------------------单向链表 typedef struct node { int data; stru

2022-03-31 11:17:12 1273

原创 一.静态库和动态库的创建与调用。

1.创建静态库:static_test_sort.h#define funtype int //变量类型funtype Sel_sort(funtype *a, funtype len); //选择排序funtype bub_sort(funtype *a, funtype len); //冒泡排序funtype insert_sort(funtype *a,

2021-12-29 20:27:57 626

原创 一对于开关电源的简单整理:

一.首先电感和电容,电阻作为常见的电源电路的元器件:有着各自的作用:电阻:并联分流,串联分压特性。二极管:整流作用(单向导通性)等。(一).“电容通交流阻直流原理:电容的阻通性能是随电流的频率变化的。当交流电流接通时,正极板不断聚集正电荷,负极板不断聚集负电荷,这是电容的充电。充电、放点,就形成了电流。频率越高,充放速度就越快电流就越大其他作用:1)旁路旁路电容是为本地器件提供能量的储能器件,它能使稳压器的输出均匀化,降低负载需求。就像小型可充电电池一样,旁路电容能够被充电,并向器件进行放电。

2021-12-17 18:14:21 612

原创 一.关于ymodem协议的配置总结

一.对ymodem协议的基础通信结构解读:(1)Ymodem 有两种帧格式,主要区别是信息块长度不一样。(2)帧头表示两种数据帧长度,主要是信息块长度不同。(3)数据包序号只有1字节,因此计算范围是0~255;对于数据包大于255的,序号归零重复计算。(4)【1】以SOH(0x01)开始的数据包,信息块是128字节,该类型帧总长度为133字节。【2】以STX(0x02)开始的数据包,信息块是1024字节,该类型帧总长度为1029字节。(5)Ymodem采用的是CRC16校验算法,校验值为2字

2021-12-17 14:39:12 3503

原创 一.对于串口的打印重定义和打印功能函数定义

一.串口1的打印重定义。#pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE

2021-12-16 08:58:31 1005

原创 一.stm32的内部flash操作笔记

一.在文件stm32f4xx_hal_flash_ex.h中有对应的文件标号定义如下:/*--------------------------------------- STM32F40xxx/STM32F41xxx -------------------------------------*/ #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defin

2021-12-13 16:25:14 731

原创 一.独立看门狗的理解笔记

一.独立看门:(1)首先独立看门狗和窗口看门狗的两者异同点分析:1>·窗口看门狗是需要精确的us的一种系统复位机制,同时还有中断配合分析。应用在程序运行超时要求较高的场所。加粗样式2>·独立看门狗则是以精确到ms或者s的一种复位机制触发的复位。简单分析:窗口看门狗更加的安全可靠,独立则只能满足需要复位的功能。(2)独立看门狗参数配置依据:分频系数有如下几个选项:独立看门狗的计数器是一个 12 位的递减计数器,最大值为 0XFFF,当计数器减到 0 时,会产生一个复位信号:

2021-12-12 23:20:54 832

原创 一.窗口看门狗串口记录笔记

一窗口看门狗的原理:简单来讲:就是有个递减计数器:从(0x7f)127开始递减——>64(0x40).并有一个窗口值来划分:递减到喂狗的有效区域。(值:0x7f~0x40)其中FPCK1:程序:/* WWDG 配置函数 * tr :递减计时器的值, 取值范围为:(127)0x7f~0x40(64),超出范围会直接复位 * wr :窗口值,取值范围为:0x7f~0x40 * prv:预分频器值,取值可以是 * @arg WWDG_PRESCALER_1: WWDG count

2021-12-07 17:58:21 436

原创 一.对于flash芯片的存储区的总结

一.对于flash的存储的区分:1.假设芯片的flash大小为 1mb,则块区:16块 即64kb为一块区扇区:256个扇区 即4kb为一扇区页: 一个扇区有16页,即256byte为一页名称值块区一个1mb大小的flash有16个块扇区一个块区有16个扇区页一个扇区有16页2.依此类推,可知任意大小的flash存储的区域大小。(此为外部存储flash芯片的划分原则)。对于mcu内部flash芯片的存储的划分,由其芯片说明手册中由介绍。一般也遵循上

2021-11-11 09:19:23 5359

原创 一.上位机和串口间的数据交互处理流程。

1.头文件的中的使用的变量定义://***********************************串口相关***********************************************//enum uart_statu_type{ UART_POWER_UP,//上电状态 UART_STANDBY, //初始化串口状态 UART_RUNNING, //初始化完成后的正常状态 UART_RECEIVING,//正在接收的状态 UART

2021-11-09 14:21:52 932

原创 一.关于vscode配置快速文件注释和函数注释功能。

1.打开配置2.格式如下:此类注释实际使用的是一种打印输出:文件中有实例说明,这不光可以配置注释还可以配置for,while以及switch等,需要自定义的函数。(注意文件类型的对应的关系,c.json仅适用于c,c++.json又需要进行配置){ // Place your snippets for python here. Each snippet is defined under a snippet name and has a prefix, body and // descrip

2021-11-09 10:51:12 1794

原创 一.关于linux内核链表的简单应用。

1.找到linux的内核链表所在位置:(1)一般在linux内核源码包解压后的:X:\linux-5.8.8\include\linux目录下:存在这list.h文件,该头文件是调用内核链表的头文件,所以使用时需要添加文件到本地,或者以绝对路径进行调用。这里就不展开说明了,(其实list.h的每个函数都有英文的注释说明,多读该头文件,从该头文件中可以学到很多对于链表的使用和借鉴之处)如下是头文件中所有的函数名:从上面的函数名中通常可以,见名知意。大致了解起作用。2.简单应用程序框架:(1)

2021-10-28 18:14:08 263

原创 一.对ST官方所提供stm32实例资料说明。

一.首先ST官方提供了示例资料https://www.st.com/zh/ecosystems/stm32cube.html#products下载连接。二.对cube压缩包解压:以f4的cube包进行介绍:1.2.3.4.对于手动初始化外设,可以通过文件内的文件进行参考配置,如不熟悉cubemx图形化编程配置的,可以以此为参考进行手动的文件配置。...

2021-10-12 18:28:15 213

原创 一.Linux磁盘相关操作笔记

一,磁盘的查询信息命令:1 .df(英文全称:disk full):列出文件系统的整体磁盘使用量-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k :以 KBytes 的容量显示各文件系统;-m :以 MBytes 的容量显示各文件系统;-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-H :以 M=1000K 取代 M=1024K 的进位方式;-T :显示文件系统类型, 连同该 partition 的 filesystem 名称

2021-10-04 21:20:04 61

原创 一.大端和小端的认识解读

首先内存地址和数据的存储大多遵循一个存储规律,而存储规律分了两类,一类位大端,数据高位,存储在低地址也可以是(数据低位,存储在高地址)数据:0x12345678高… 低地址数据高低位置0x0000 00000x12低地址0x0000 00010x340x0000 00020x560x0000 00030x780x0000 000……0xFFFF FFFF0xff高地址一类位小端,数据低位,存储在低地址。(数据高

2021-09-26 16:29:48 73

原创 TotoiseGIt和git的应用示例演示

一.关于TortoiseGIT 此工具本质和git作用一样,只是TortoiseGIT是图形化界面管理。下载连接:https://tortoisegit.org/download/安装后的介绍:1.TortoiseGIT进入配置(点击设置)到此基本配置完成,对于ssh的配置有很多就不赘述了,就讲一个在git中以命令获取的简单步骤吧!ssh-keygen -t rsa -C “邮箱” -f ~/.ssh/xx_id_rsacd ~/.ssh/cat xx_id_rsa.pub复制内

2021-09-03 22:10:46 451 1

原创 keil5环境下生成bin文件

1.首先对于keil5其编译生成的HEX文件,一般通过勾选如下:在进行ISP烧写时,就可以通过传送HEX文件进行烧写。2.对于烧写而言不仅仅可以通过HEX文件进行烧写,还可以通过BIN文件进行烧写,且BIN文件比HEX文件更小。设置BIN文件如下:有两种方式,都是通过自带的fromelf.exe来生成(1)绝对路径方式绝对路径方式:“(keil5的安装路径下)\ARM\ARMCC\bin\fromelf.exe” --bin -o ./obj/test_app.bin ./obj/tes

2021-09-02 16:58:56 4604 3

原创 一.对于计算机中存储地址的计算以及容量缺少问题的分析

1.首先1GB=1024MB,M是MB的简称。1024GB=1TB,1024Byte=1KB,1024KB=1MB 移动数据流量单位转换关系。字节 (byte):8个二进制位为一个字节(B),最常用的单位。计算机存储单位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是:1B(Byte字节)=8bit;明确一点: 64kb=0x1 0000 = 65535 = 2^162.存储容量计算:即通过 (128kb/64kb)*0x10000计算可得容量结

2021-08-23 15:04:12 943 1

原创 一.关于变长数组,以结构体来处理的应用问题。

一.目标:由于数据的长度根据请求,而返回的数据长度会发生改变,这时定义一个变长数组就可以,使定义不同长度的数组来返回数据的问题变得简洁起来。二.方法:采用的结构体中0数组来处理该问题。//定义长度结构体typedef truct Line{ uint8_t length; uint8_t contents[0];//在结构体中,数组为0的数组必须在最后声明,使 用上有一定限制}Lines;//结构体字节对其问题//表示它后面的代码都按照n个字节对齐#pragma pack

2021-08-20 16:59:04 419

原创 关于stm32f4上对(28byj-48)步进电机的应用控制和解读。

1.关于stm32f4上对(28byj-48)步进电机的应用控制和解读。(1).ULN2003驱动模块电路步进电机不能直接和单片机连接,需要对应驱动模块提供电机所需的电流。电路图分析:IN1~7为单片机的输出io连接端。1C~7C为相数对应(A ~ G).根据电路图将接地和供电分别接入。从左往右(分别接入GND,VCC,空,VCC);vcc为5v电压。驱动模块的接线图。(2).28byj48.h头文件#ifndef _28byj48_H#define _28byj48_H#i

2021-08-19 17:03:25 1957 4

原创 一.关于itoa,atoi添加头文件后仍报错,编写相应自定义函数解决方案。

1.首先itoa、atoi的头文件在stdlib.h下。有时即使添加了stdlib.h依旧无法使用这两个函数。比如stm32下编程时。2.自定义函数如下:/*将整数转化为字符串:num,转换对象str,转换后存储字符串的数组radix,转换(给于的字符串)的长度*/char *myitoa(int num,char *str,int radix) { /* 索引表 */ char index[]="0123456789abcdefghijklmnopqrstuvwxz";

2021-08-19 16:52:23 2577 2

原创 一.关于notepad++如何配置c/c++编译运行环境

一.关于notepad++如何配置c/c++编译运行环境。1.安装配置MinGW环境,并配置环境变量。2.notepad++安装插件:3.添加快捷键:分别输入下面的编译和运行,并保存编译:cmd /k g++.exe -g -W -Wall -o $(CURRENT_DIRECTORY)$(NAME_PART).exe $(FULL_CURRENT_PATH)或者cmd /k gcc -Wall -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe" "$(

2021-08-18 13:51:58 817

转载 一、git常用命令集合

一、 Git 常用命令速查git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin [email protected]:ndshowgit push o...

2021-08-17 10:30:20 510

原创 一、关于github中本地和远程端的数据同步流程指南。

一.关于github如何实现本地和远程端的数据同步。方法一、首先下载github Desktop桌面应用:下载地址:https://desktop.github.com/同时事先注册github 账号。在github Desktop上登录github账号。1.在网页上登录github账号:创建仓库:创建配置:2.打开gihhub Dsktop并登录账号:显示如下:3.clone仓库文件:等待clone完成:4.本地仓库总览:区域介绍:5.添加项目文件:6.提交

2021-08-17 10:11:18 1716

转载 一.ubuntu20.4启动界面背景更换

一.下载这个.sh文件下载地址:https://codechina.csdn.net/mirrors/thiggy01/ubuntu-20.04-change-gdm-background/-/blob/master/change-gdm-background点击对应图片右上方的下载然后就可以下载一个txt文件。一般会下载到Downloads目录下。然后重命名把后缀改成.sh即可。之后修改权限sudo chmod 777 change-gdm-background.sh二.运行该脚本。sud

2021-08-13 18:14:57 913

原创 一.buntu系统环境变量配置文件

一.buntu系统环境变量配置文件:活用环境变量可以使软件或者某些配置变得简单实用。/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。~/.profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文

2021-08-03 17:05:33 275

翻译 一.在window下安装MinGW实现gcc编译程序流程

软件下载界面:https://sourceforge.net/directory/development/compilers/一.流程图如下:二.三.一.配置环境变量:在win开始处右键选择系统:此处路径:盘符:\某文件夹下\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin二.通过下面来看是否安装成功:gcc测试编译执行:...

2021-07-07 14:49:10 441

原创 一.对于crc校验的流程演示说明。

一.CRC 是循环冗余校验的缩写,全称是 Cyclical Redundancy Check。CRC 的基本原理是发送端根据 CRC 算法,对总线上要传输的原始数据进行计算,得到一个 CRC 校验码(简称 A),这个校验码 A 与原始数据存在着固有的关系。发送端把原始数据和校验码 A 组合在一起,发送给接收端。接收端收到数据之后,通过算法对原始数据进行独立计算,得到一个新的 CRC 校验码(简称 B),并将两个 CRC 校验码(A 和 B)进行比较验证,若不一致则表示数据在传输过程中出错,从而提高了总线

2021-07-07 14:11:34 834

原创 一.linux交叉编译环境搭建

linux交叉编译环境搭建:1.交叉编译简单讲就是不同平台间的编译。1):Linux系统上可通过安装:sudo apt-get install gcc-arm-linux-gnueabihf2)工具链下载地址:https://www.linaro.org/downloads/2.安装配置:1).将下载的arm-linux-gnuea…xz移动到下面文件命令:sudo cp -r arm-linux…xz /usr/local解压命令;sudo tar -xvfz arm-linux-gn

2021-06-07 20:16:47 2689

原创 一.stm32上ADC,DAC的应用说明

一.stm32上ADC,DAC的应用说明:1.首先ADC是将模拟信号转成数字信号,DAC则相反。(模拟信号可以简单的理解为温度,光照,压力等,数字信号则可以是电压等),2.一般某些传感器上会标出AO,DO,AI,DI。其中AO叫做模拟量输出,DO数字信号输出。AI,DI则对应着输入。(未知)AO–>转化–>DI(对应的数字信号)。进一步解读:可以看成AO是模拟信号采集以后输出给数字信号DI接收后经过数据处理就得到了对应的电压数值,而这些电压数字一般和模拟量之间存在这一些数学转换公式,

2021-04-13 14:25:57 2057

原创 一.对于stm32内部flash读写解读:

对于stm32内部flash读写解读:1.stm32其内部本身有一块flash其扇区分布:其中主存储去为数据存储区别:剩下的扇区则是flash内部一般不去改变的区域。而对于内部flash的读写操作主要围绕主存储区展开。以stm32f4为例,对于不同的芯片其大小是有区别的,但起始扇区却是固定的0x800 0000;//为此可以在 xx_flash头文件中添加扇区起始地址的宏定义#define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) /* B

2021-04-08 15:13:09 1385

串口1进行dma数据通信传输,串口2进行打印

串口1进行dma数据通信传输,串口2进行打印信息,用于单片机内部数据通信,和调试信息的移植方向

2021-12-06

stm32f4上hal库串口收发源程序

使用hal库对串口收发的源程序代码。

2020-12-24

STM32F4上游戏摇杆模块JOYStick的测试源码

在stm32上测试x,y,z,键,并在串口输出x,y,z的状态,x,y决定上下左右,z决定按键。通过遥感的摆动在串口上看到对应(摇杆位置)的状态。

2020-12-01

stm32上3色led灯,激光模块,金属触摸模块源码

stm32f407板子测试后实现3色led灯(呼吸灯模式),激光灯模块,金属触摸模块的源源码.....。

2020-11-26

stm32上(DTH11)温湿度模块源程序

在stm32f407上通过在串口助手实时输出并显示出当前的温湿度,并对温湿度模块进行定义和测试的源程序。

2020-11-24

stm32f4上火焰模块的运行源码

在stm32f4上运行的火焰模块源代码,通过adc和dac对火焰模块进行数据处理,输出到串口上,并实时显示火焰强度。

2020-11-23

(hc-sr04)超声波模块在stm32f4上的源程序

在stm32f4上运行(hc-sr04)超声波模块,本程序功能上是测出超声波碰到物体并返回的距离,并通过串口显示出来。

2020-11-20

28byj48步进电机程序.zip

在stm32f4单片机上,实现对(28byj48)步进电机的转速进行调节和控制,还可通过选项(0和1)选择正反转向。

2020-11-17

双向循环链表.zip

对c语言中双向循环链表的简单应用。能实现链表中的(前插人)后插入,查找,删除,移动的相关功能,并配有较为详细的注释,还画有数据和指针的流向图,帮助你快速理解对于链表中 各指针的指向关系。(测试时需将函数声明删除,将函数移动至main前测试,同时移动数据时需要修改所要移动的数据)

2020-08-13

空空如也

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

TA关注的人

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