草庐IT

STM32单片机IAP介绍

1、什么是IAP?首先区分下两个概念:ISP和IAP:        ISP:InSystemProgramming(在系统中编程),通过芯片专用的串行编程接口对其内部的程序存储器进行擦写。        IAP:InApplicationProgramming(在应用中编程),通过调用特定的bootloader程序,对程序存储器的指定段进行读/写操作,从而实现对目标板的程序的修改,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。        简单来说ISP就是平时我们用JLINK之类的下载器通过专门的SWD接口来下载程序,IAP就是通过调用bootloade

STM32系列(HAL库) ——定时器编码器/正交解码模式

     STM32定时器的正交解码模式多用于检测电机的编码器脉冲数做闭环控制,如PID。本文简单介绍一下定时器在Cubemx如何配置以及程序引用到的API函数。一、前期准备1、硬件:STM32C8T6最小系统板USB-TTL串口模块ST-Link下载器2、软件:keil5-IDEcubeMX 二、cubeMX配置1、配置RCC——选着外部时钟源2、配置SYS—— SerialWire模式3、时钟树拉满72M4、配置串口1        5.编码器模式配置这里配置哪一个定时器都可以,只要在第2步存在EncoderMode选项即可。第3步EncoderModeT1是只计上升沿,EncoderMo

【CubeMX配置STM32使用串口的发送与接收】

CubeMX配置STM32使用串口的发送与接收一、使用CubeMX对串口进行基本的配置1、配置USART其它对STM32进行基本的配置我就不作过多解释了,就只看串口这一部分的配置(使用的c8t6为例)这儿我以USART1为例,先选择为异步通信然后在波特率那儿可以选择自己合适的波特率,但是在串口调试助手中记得要选择相同的波特率,不然无法进行通信对USART1进行使能CubeMX的配置就算结束了二、使用keil5进一步进行开发1、熟悉串口收发的函数(1)阻塞式发送函数(初学者推荐)HAL_StatusTypeDefHAL_UART_Transmit(UART_HandleTypeDef*huart

STM32循迹寻光避障小车(二)(红外循迹部分)

目录TRCT5000寻迹模块介绍1.模块介绍:2.管脚介绍:3.使用原理:4.代码部分:Tracing.c文件全部代码(附带注释)Tracing.h文件全部代码TRCT5000寻迹模块介绍首先介绍一下使用到的红外寻迹模块,我们采用了TRCT5000的三路红外寻迹模我从网上找到如下的图片和资料:1.模块介绍:1、采用TCRT5000红外反射传感器2、检测距离:1mm~8mm适用,焦点距离为2.5mm3、比较器输出,信号干净,波形好,驱动能力强,超过15mA。4、配多圈可调精密电位器调节灵敏度5、工作电压3.3V-5V6、输出形式:数字开关量输出(0和1)2.管脚介绍:VCC用STM32上的5V或

关于stm32旋转编码器计次乱跳问题(消抖)

旋转编码器A口接GPIOB0,B口接GPIOB1。设置中断类型为上升下降沿均触发。输出是用0.96寸oled输出A脚设置为上升下降沿均会进中断,下降上升一个变换周期,判断这个周期的A脚,B脚的始末状态,来判断正反转一次。A口输出的波形用来中断,B口输出的波形用来判断正转还是反转voidEXTI0_IRQHandler(void){ if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==1&&inNum==0)//第一次中断并且A口上升 { flag=0; if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==1) {

【STM32】基础知识 第五课 C 语言基础知识

【STM32】基础知识第五课C语言基础知识stdint.h简介位操作寄存器位赋值宏定义带参数的宏定义条件编译头文件编译代码条件编译extern声明类别名(typedef)结构体指针指针使用的常见问题代码规范stdint.h简介stdint.h是从C99中引进的一个标准C库的文件.路径:“D:\MDK5.34\ARM\ARMCC\include”位操作运算符含义运算符含义&按位与~按位取反|按位或左移^按位异或>>右移按位与:num1运算符num2结果0&001&000&101&11按位或:num1运算符num2结果0|001|010|111|11按位异或:num1运算符num2结果0^001^

STM32F103 KEIL 标准库直接添加DSP库

前言近期由于比赛需要,想要在STM32上移植DSP库进行FFT变换,找了很多资料都是利用CUBEMX进行导入的方法,本人使用的是标准库,对HAL库并不熟悉,所以考虑到移植的方便采用直接在项目文件中移植DSP库的方法,可以使用标准库编程,亲测有效1.在待移植的工程目录下新建DSPlib文件夹,用以存放DSP的相关文件blog.csdnimg.cn/291099e0402f46439160e2cf9b92fdd2.png)2.在keil安装目录下找到CMSIS文件夹(这个和你的KEIL安装位置有关),进入内部,找到CMSIS\DSP下的include文件夹,将其拷贝到上一步DSPlib文件夹3.进

STM32CubeMX配置HAL库实现SPI-DMA的递归调用

对于快速入门STM32CubeMX,可以参考【STM32】HAL库STM32CubeMX系列学习教程——————————一、硬件参数与配置:核心:STM32F407ZET6  外设ADC:ADS1258  数量:3个  ※核心与3个ADC使用SPI总线“一主多从”方式连接,PCB布线的方式与下图一致。※在电路板上STM32与三个ADS1258在同一直线上分布,STM32在一端,三个ADC依次排布。※离STM32最远ADC的DRDY硬件管脚与STM32的EXTIline4interrupt连接。 1.1STM32CubeMX的设置 1.1.1时钟树配置如下:  1.1.2 ADC输入的CLK由S

【STM32】stm32驱动TB6600控制42/57步进电机的案例(TIM中断和PWM实验)

步进电机的简单使用接线:TB6600驱动盒的详细说明:程序设计:工程文件:做毕业设计要用到57步进电机,所以花了两天时间做了一下电机函数从淘宝查的资料:接线如图:接线:DIR-&&PUL-接单片机GNDDIR+接PA1PUL+接PA0驱动盒TB6600VCC24V驱动盒TB6600GND24V的GND我测出来的A组(绿+蓝-)B组(黄+红-)如何确定AB两组看这个:关于42步进电机驱动——基于STM32HAL库实现接线方法TB6600驱动盒的详细说明:先冲英说明:MicrostepDriver微步驱动程序Microstep微步Pulse脉冲我开关SW设置成这个样:1off2off3on4on5

【STM32】stm32驱动TB6600控制42/57步进电机的案例(TIM中断和PWM实验)

步进电机的简单使用接线:TB6600驱动盒的详细说明:程序设计:工程文件:做毕业设计要用到57步进电机,所以花了两天时间做了一下电机函数从淘宝查的资料:接线如图:接线:DIR-&&PUL-接单片机GNDDIR+接PA1PUL+接PA0驱动盒TB6600VCC24V驱动盒TB6600GND24V的GND我测出来的A组(绿+蓝-)B组(黄+红-)如何确定AB两组看这个:关于42步进电机驱动——基于STM32HAL库实现接线方法TB6600驱动盒的详细说明:先冲英说明:MicrostepDriver微步驱动程序Microstep微步Pulse脉冲我开关SW设置成这个样:1off2off3on4on5