自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 电机驱动系列(1)--例程下载演示

使用野火骄阳板和野火无刷电机驱动板无感驱动PMSM电机

2023-07-15 11:05:15 280

原创 C#项目练习系列--1.倒计时器

C# 设计界面类似于MATLAB 的 simulink 功能,只需要先把所需要的组件拉进来,再设置属性数据,然后编写各模块代码,比较方便。编程规范跟C语言类型,也分全局变量和局部变量,不同于C语言的是,C#编程多使用类,就相当于C语言的结构体多重调用,更加考验对于类函数的熟悉程度,因为很多功能都有了,只需要知道这个功能附在哪一类的后面,以及熟悉函数的用法。然后开始编程,C#在工程建立之后有相当于有了一个主函数,而需要实现的功能在双击组件之后就会建立对应子函数,需要在点击组件之后实现什么功能就在子函数编写。

2023-06-26 00:32:31 672

原创 Cursor--基于ChatGPT的辅助编程软件

有了这类编程辅助软件,确实能极大的提高程序员的效率,同时对程序员的能力也是一种挑战,对于一个工程,可以进行任务分解,不断细化流程框图,自顶向下设计,优化到最终的某个功能或某个函数就可以交给辅助软件去解决,所以更考验的是对任务的分解和逻辑能力,以及学会如何提问。测试了Cursor在嵌入式应用及个人娱乐方面的编程,如指定某单片机实现某功能以及编写推箱子小游戏等等(但是编写破解VIP视频这类要求是会提示不能生成的),在编译软件已下载了程序所依赖的库时,生成的代码可以直接复制编译。3.双击exe可执行文件安装。

2023-03-26 02:35:59 1148

原创 Python入门

Python入门缩进变量常用函数运算操作技巧缩进缩进是 Python 的灵魂,缩进的严格要求使得 Python 的代码显得非常精简并且有层次,如果没有正确的使用缩进,代码运算的结果可能相差甚远,相当于 C语言的括号。变量Python 中的变量赋值不需要类型声明每个变量在内存中创建,都包括变量的标识、名称和数据这些信息每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建常用函数1.获取随机数函数random module 模块里的函数 randint(),使用此函数会返回一个随机的整

2021-12-19 18:03:25 453

原创 汇编常用指令

汇编常用指令通用数据传送指令目标地址传送指令算术运算指令符号扩展指令逻辑运算指令通用数据传送指令MOV 传送指令MOV 目标,源指令功能:源 -->目标目标操作数不允许为立即数(如00H)、其它同源操作数。PUSH 入栈指令PUSH 源指令功能:将源操作数压入堆栈源操作数可以是16位通用寄存器、段寄存器或者是存储器中的数据字。POP 出栈指令POP 目标指令功能:将堆栈中当前栈顶和次栈顶中的数据字弹出送到目标操作数。目标操作数可以是16位通用寄存器、段寄存器或者是存储单

2021-12-14 15:06:43 1124

原创 leetcode系列 无重复字符的最长字串 C语言

leetcode系列 无重复字符的最长字串 C语言题目大概思路代码题目给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers大概思路记录每一个字符第一次出现的位置,当第二次出现时用当前位置减去第一次出现的位置,比较得出最长的子串长度。输出。注意:要用字符串的长度减去最后出现重复字符的位置,否则将考虑少一种情况。代码int lengthOfLong

2021-09-09 20:36:14 159

原创 leetcode系列 两数相加 C语言

leetcode系列 两数相加 C语言题目思路代码题目给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers思路取两链表的对应结点链表数据,相加,将和的个位数赋给和链表的节点数据,判断是否

2021-09-08 16:17:34 192

原创 leetcode系列 两数之和 C语言

leetcode 两数之和 C语言代码代码/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(int* nums, int numsSize, int target, int* returnSize){ int i,j; int *res; res = (int *)malloc(2*sizeof(int)); for(i=0;i<

2021-09-06 13:30:46 158

原创 STM32f407zgt6定时器9初始化

STM32f407zgt6定时器9初始化void TIM9_Int_Init(u16 arr,u16 psc){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM9,ENABLE); TIM_TimeBaseInitStructure.TIM_Period = arr;

2021-07-31 21:39:07 1175

原创 ESP8266 WIFI模块获取天气信息

ESP8266 WIFI模块获取天气信息基本步骤获取天气时间基本步骤(1)确认模块在 STA 模式。如果不在需要输入AT指令:AT+CWMODE=1响应OK后输入:AT+RST或者重新上电(2)连接WIFI。可用 AT+CWLAP 查询可用WIFI再用 AT+CWJAP = "WIFI名称“,”密码“ 。连接WIFI(3)连接 API。可用 AT+CIPSTART=“TCP”,“tianqiapi.com”,80 ,连接(4)获取天气等情况。输入 AT+CIPSEND 进入

2021-07-19 15:10:24 2264

原创 ESP8266 WIFI模块

ESP8266 WIFI模块基本概念工作模式常用AT指令基本概念ATK-ESP8266模块采用串口(LVTTL)与MCU(或其他串口设备)通信,内置TCP/IP协议栈,能够实现串口与WIFI之间的转换。ATK-ESP8266模块支持LVTTL串口,兼容3.3V和5V单片机系统,模块支持串口转WIFI STA、串口转AP和WIFI STA+WIFI AP的模式。用的是正点原子的模块工作模式ATK_ESP8266 模块支持 STA/AP/STA+AP 三种工作模式。STA 模式:ESP8266

2021-07-18 12:31:19 4942 1

原创 C 对文件的输入输出

C 对文件的输入输出文件类型及概念文件名文件缓冲区打开、读写及关闭文件文件类型及概念所谓 “文件” 一般指存储在外部介质上数据的集合。一批数据是以文件的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的,如果想找存放在外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。要向外部介质(磁盘)上存储数据也必须先建立一个文件(以文件名作为标志),才能向它输出数据。输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象地称为流(stream)

2021-07-14 22:08:05 148

原创 C 动态内存分配

C 动态内存分配定义建立内存的动态内存释放动态存储区定义全局变量是分配在内存中的静态存储区的,非静态的局部变量(包括形参)是分配在内存中的动态存储区的,这个存储区是一个称为栈(stack)的区域。内存动态分配区域是存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据是临时存放在一个特别的自由存储区,称为堆(heap)区。以下函数的声明在 sstdlib.h 头文件中。建立内存的动态内存1.用 malloc 函数开辟动态存

2021-07-10 12:47:09 88

原创 C语言 结构体

C语言 结构体定义及方法定义结构体类型变量结构体变量的初始化和引用定义及方法C语言允许自己建立由不同类型数据组成的组合型的数据结构,称为结构体。声明一个结构体类型的一般形式为:struct 结构体名 { 成员表列};花括号内是该结构体所包含的子项,称为结构体的成员。对各成员都应进行类型声明,即: 类型名 成员名;成员可以属于另一个结构体类型。如:struct Date //声明一个结构体类型 struct Date{ int month; int day; int year

2021-07-09 15:55:34 174

原创 C语言指针

C指针基本概念定义指针变量指针变量作为形参通过指针引用数组基本概念如果程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元;内存区的每一个字节有一个编号,这就是 “地址”,它相当于旅馆中的房间号,在地址所标志的内存单元中存放的数据则相当于旅馆房间中居住的旅客。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元,因此,将地址形象化地称为 “指针”。例如:一个房间的门口挂了一个房间号208,这个208就是房间的地址,或者说,208 “指向” 该房间。C语言中的地址包括位置信

2021-07-06 16:09:36 98

原创 C部分字符串函数

C部分字符串函数字符串字符串在使用字符串处理函数时,应当在程序文件的开头用#include “string”字符串常量的最后由系统加上一个 ‘\0’puts—输出字符串的函数puts(字符数组)gets—输入字符串的函数gets(str) // str是已定义的字符数组puts 和 gets 函数只能输入或输出一个字符串strcat—字符串连接函数strcat(字符数组1,字符数组2)把字符串2接到字符串1的后面,结果放在字符数组1中。strcpy 和 strncpy —字符串复

2021-07-05 15:34:40 126

原创 C冒泡排序法

C冒泡排序法基本思路基本流程代码基本思路每次将相邻的两个数比较,将小的调到前面,大的数沉底。如果有n个数,则要进行 n-1 躺比较。在第一躺比较中要进行 n-1 次两两比较,在第 j 躺比较中要进行 n-j 次两两比较。基本流程代码#include “stdio.h”int main(){int a[10];int i,j,t;printf(“input 10 numbers :\n”);for(i=0;i<10;i++)scanf("%d",&a[i]);pri

2021-07-05 15:07:57 286

原创 51单片机系列--定时/计数器

51单片机系列--定时计数器硬件结构寄存器TCON寄存器TMODTHx、TLx赋值方式3硬件结构51有两个定时/计数器,即T0、T1;T0由两个8位的寄存器TH0、TL0构成,字节地址为8CH、8AH;T1由两个8位的寄存器TH1、TL1构成,字节地址为8DH、8BH;定时计数器主要受方式寄存器 TMOD 和控制寄存器TCON的控制。方式寄存器TMOD用于设置定时器的工作方式,控制寄存器TCON用于启动和停止定时/计数器的计数,并控制定时器的工作状态。进位标志(溢出):CY寄存器TCONTC

2021-05-27 17:58:55 3169

原创 51单片机系列--中断系统

51单片机系列--中断系统中断系统的结构TCON寄存器中断允许寄存器IE中断函数中断优先级寄存器IP中断系统的结构有5个中断请求源 INT0、T0、INT1、T1、TI/RI ;中断标志寄存器(TCON)中断允许寄存器(IE)全局中断允许中断优先级寄存器(IP)查询硬件TCON寄存器外部中断源有外部中断0(INT0)–P3.2,和外部中断1(INT1) – P3.3 。TCON寄存器,可位操作IT0:外部中断0触发方式控制位,IT0=0 时,为低电平触发;IT0=1 时,为下降沿

2021-05-20 14:57:15 1756

原创 51单片机系列--并行I/O端口

51单片机系列--并行I/O端口基本概念数据的传送方式I/O 端口特性基本概念51系列单片机的每个端口都是8位准双向口,共占32位引脚。每个端口都包括一个锁存器(一个D触发器构成)、一个输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用 I/O 端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分别作为低8位地址线和双向数据总线。数据的传送方式(1)同步传送无条件传送。外设工作速度非常快或非常慢时宜采用同步方式。(2)异步传送条件传送

2021-05-18 15:14:40 3870

原创 51单片机系列--基础知识

51单片机系列--基础知识主要参数及功能引脚及功能工作时序主要参数及功能(1)8位CPU (2)4KB程序存储器(ROM)(3)128字节的数据存储器(RAM)(4)32条 I/O 口线(5)111条指令,大部分为单字节指令(6)21个专用寄存器(7)2个可编程定时/计数器(8)5个中断源(2个外部,2个定时,1个通信),2个优先级(9)1个全双工串行通信口(10)外部数据存储器寻址空间为64KB(11)外部程序存储器寻址空间为64KB(12)逻辑操作位寻址功能(13)多种封装形

2021-05-16 14:34:54 6105

原创 AD10入门

AD10入门汉化视图以工程为开发单位,( 新建工程 )汉化重启软件视图以工程为开发单位,( 新建工程 )1.新建工程(1)在工程窗口打开,空白处点鼠标右键新建。保存(2)点击工程,给工程添加新的原理图和PCB,原理图库和PCB封装库2.画原理图(1)点击库,拖元器件(2)连线,(放置),p+w3.原理图库(1)文件,新建,原理图库(2)(3)放置,图形,引脚,引脚跟随鼠标的点朝外。tab建可修改属性,标识是序号,显示名称是功能。(4)在原理图图中新建器件,点击工具,新器件。

2021-04-16 14:47:07 1890

原创 Stm32f4时钟系统初步认识

Stm32f4时钟系统初步认识时钟源介绍主 PLL 时钟第一个高速时钟输出 PLLP 的计算方法SYSCLK 系统时钟来源目前设置库函数版本查询技巧在 STM32F4 中,有 5 个最重要的时钟源,为 HSI、HSE、LSI、LSE、PLL。其中 PLL 实际是分为两个时钟源,分别为主 PLL 和专用 PLL。从时钟频率来分可以分为高速时钟源和低速时钟源,在这 5 个中 HSI,HSE 以及 PLL 是高速时钟,LSI 和 LSE 是低速时钟。从来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接

2021-04-15 05:14:23 494

原创 MPU6050

MPU6050 MPU6050 内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并且含有一个第二 IIC 接口,可用于连接外部磁力传感器,并利用自带的数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主 IIC 接口,向应用端输出完整的 9 轴融合演算数据。有了 DMP,我们可以使用 InvenSense 公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。姿态数据 (欧拉角)航向角(yaw

2021-04-15 02:47:10 835

原创 I2C通信

I2C通信半双工通讯方式时序图I2C状态分为起始信号、数据传输部分、停止信号起始信号:SCL为高电平,SDA由高到低数据传输部分:SCL低电平时SDA可变,SCL高电平时SDA不可变,此时正在读数据,防止读错停止信号:SCL为高电平,SDA由低到高空闲状态:SDA、SCL都为高电平I2C总线寻址模式 第一个字节: 发送方:7位地址+1位读写 0:写,1读 接收方:回一个ACK代码 //产生 IIC 起始信号void IIC_Start(void){SD

2021-04-14 17:43:26 188

原创 Matlab 常用语句

Matlab 常用语句while 循环 while 表达式 循环体 end 表达式为循环条件for 循环 for 循环变量 = 表达式1:表达式2 :表达式3 循环体 end 表达式1为变量初值 表达式2为步长,为1时可省略 表达式3为终值 循环体可用break退出if 语句 if

2021-04-14 12:59:50 1546

原创 Stm32f407串口2与openmv通信超时重发

Stm32f407串口2通信超时重发学习记录二级目录三级目录学习记录 在 二级目录三级目录

2021-03-12 13:24:15 1312

原创 stm32f407Zgt6 与 hc05蓝牙模块通信

stm32f407Zgt6 与 hc05蓝牙模块通信步骤stm32f407Zgt6串口配置hc05串口配置步骤1.配置 stm32串口2.配置蓝牙串口3.通信,主要是stm32串口中断接收数据以及处理数据stm32f407Zgt6串口配置hc05串口配置

2020-12-31 10:02:28 3586 5

原创 stm32f1 与 stmf4 部分函数区别

stm32f1 与 stmf4 部分函数区别学习记录时钟重映射结构体GPIO_TypeDef学习记录学习中经常要把框架相同的工程代码用到不同单片机,stm32的f1与f4的部分函数有区别,这里不能全部列出来,只能遇到一个记一个。时钟相同IO口在两单片机上的时钟使能可能不一致,查看函数数据有效性可解决。重映射stm32f1 : RCC_APB2Periph_AFIOstm32f4:GPIO_PinAFConfig()示例:配置SPI2管脚(部分) RCC_APB2PeriphClockCmd

2020-12-22 15:39:03 3104 1

原创 Openmv 与 Stm32f407通信

Openmv 与 Stm32f407通信入门学习记录大概思路代码入门学习记录学习中接触到了openmv ,发现视觉也挺好玩的,openmv视觉处理的数据经常要传到另一个单片机,这里openmv用的是stm32h7,用的串口为串口3。控制板是stm32f407zgt6,用的串口是串口2。目的是将openmv的数据通过串口传到控制板并在oled上面显示。大概思路两个单片机用串口通信,必须把自己的串口配置好。stm32f407串口2的配置在上一个文章讲了;openmv的串口直接调用。双方约定好波特率就可

2020-12-20 12:28:48 7705 17

原创 Stm32f407ZGT6串口2通信

Stm32f407ZGT6串口2通信串口1与串口2串口2配置步骤代码串口1与串口2所犯错误:正点原子的例程是串口1的,同样的步骤配置好串口2后,发现不能通信,摸索大半天发现因为也用了主函数的步骤。区别在于主函数的 printf 函数,串口2不能用这个函数,否则通信失败。其它串口暂未试过,引以为戒。串口2配置步骤串口2与串口1配置差不多,主要是所用时钟、IO口不同。串口时钟使能,GPIO 时钟使能。设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。GPIO 初始化设置:要设置模

2020-12-19 18:43:30 5141 4

原创 汇编求无符号字节序列中的最大值和最小值

汇编求无符号字节序列中的最大值和最小值DATAS SEGMENT ;此处输入数据段代码 BUF DB 1,9,2,8,3,7,4,6,10,5COUNT EQU $-BUFDATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX MOV AX,ST

2020-12-09 18:06:51 4904 1

原创 stm32f4最小核心板串口下载程序

STM32f4串口下载程序使用的下载器及驱动使用的软件操作方法使用的下载器及驱动使用的下载器为USB转TTL下载器,淘宝搜即可。开始的时候用的是CMSIS-DAP仿真器,一直不成功,记录一下失败的经历。使用的软件使用的软件为 FlyMcu ,Win7,Win8系统使用CH340驱动,Win10使用CH341驱动有时候驱动下载失败,有可能是已安装类似驱动可试试运行CH341.exe(Win10)文件,点击卸载,卸载成功再安装操作方法1.单片机的BT0拨到高电平,BT1拨到地2.下载

2020-12-03 22:32:38 1590

原创 openmv刷固件

openmv刷固件新买的openmv貌似需要刷固件连接到OpenmvIDE才有画面,在电赛开始时,决定做关于视觉的题目,于是上手openmv,由于之前使用的openmv是已使用过的,并不知道要刷固件以及如何刷固件,所以浪费半天的时间下载刷固件的工具。这是使用的openmv及刷固件的流程。下载的软件STM32H750 核心板Gitee(码云):gitee.com/WeAct-TC/MiniSTM32H7xx.gitGithub:github.com/WeActTC/MiniSTM32H7xx.

2020-11-27 21:04:16 8215 1

原创 STM32F407ZGT6矩阵按键

STM32F407ZGT6矩阵按键矩阵按键大概思路代码矩阵按键单片机用来控制按键时,为节省IO口的使用,常常将按键搞成矩阵按键,这里用的是5个IO,搞为2*3=6个按键,IO为G0,G1,G2,G3,G4 ,可自行更改。使用多个IO口原理相同大概思路代码...

2020-11-21 22:24:28 1134 1

原创 STM32F407ZGT6控制电机

STM32F4ZGT6控制电机大概思路1.利用定时器产生可控方波(选好定时器及通道),需要注意的是设置PWM输出引脚时要将引脚复用到定时器2.将电机控制引脚设置成推挽输出模式3.改变占空比即可改变速度4.采用的电机驱动为TB6612,这里不做介绍5.我这里用的是定时器1的通道1,2,3,4。可自行修改定时器初始化定时器1初始化void TIM1_PWM_Init(u32 arr,u32 psc){ //此部分需手动修改IO口设置 int ccr1=500,ccr2=500,ccr

2020-11-19 20:09:36 6092 5

原创 STM32F407ZGT6控制舵机

STM32F407ZGT6核心板控制舵机大概思路定时器初始化改变占空比本人小白,最近学习了STM32F407ZGT6,用来控制舵机,写下这篇文章来记录一下自己的学习之路,如对你有参考价值再好不过,如发现错误,欢迎指正。大概思路控制舵机主要由单片机输出PWM波。控制定时器(高级,通用均可)TIMX_init(int arr,int psc)产生可控方波,改变arr设置其周期为20ms(可使用逻辑分析仪测周期频率等),频率的计算为: F = TIM_CLK/{(arr+1)*(psc+1)}。然后通过改变

2020-11-12 21:27:21 3343

空空如也

空空如也

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

TA关注的人

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