草庐IT

HAL_StatusTypeDef

全部标签

STM32+HAL库使用ADC轮询模式采集音频信号

ADC模块:咪头声音采集模块ADC轮询模式缺点:占用CPU的使用率        软件开始ADC转换后,一直等到转换完成后,才向后执行,这个代码在初始化ADC之后执行一次校准(不执行这一步也可以,但精度可能会低一些);然后就可以使用ADC轮询转换了,只需要三步:启动转换、等待转换完成、读取转换数据,即可完成一次ADC转换。 1开启外部高速时钟2配置时钟树3USART配置4ADC配置5代码配置//串口重定向#include"stdio.h"intfgetc(FILE*f){uint8_tch=0;HAL_UART_Receive(&huart2,&ch,1,0xffff);returnch;}i

STM32 HAL库PID控制电机 第三章 PID控制双电机

STM32HAL库PID控制电机第三章PID控制双电机注:本文含全部PID控制代码,保证可以运行,如不能运行可以留言回复1基础配置1.1编码器电路图及配置引脚定时器通道PA0TIM2_CH1PA1TIM2_CH2PB6TIM4_CH1PB7TIM4_CH2因此需要把TIM2、TIM4配置为编码器模式。在STM32CubeIDE中找到定时器2与定时器4,进行模式配置。以下以定时器2为例,定时器4只需进行相同配置即可。选择定时器为编码器模式,设置为不分频,最大计数值为65535,使能自动重装载,并选择TI1和TI2两路输入,实现四倍频效果。配置完定时器2和定时器4后,需要再使用一个定时器,利用其产

STM32 HAL库开发——入门篇(1)

目录一、GPIO1.1什么是GPIO 1.2GPIO简介 1.2.1GPIO特点 1.2.2GPIO电气特性 1.2.3GPIO引脚分布1.3IO端口基本结构介绍 1.4GPIO的八种模式 1.5GPIO的寄存器介绍1.6通用外设驱动模型(四步法)1.7GPIO配置步骤 1.8编程实战:点灯1.9编程实战:按键点灯 二、中断2.1什么是中断2.2NVIC2.2.1NVIC基本概念 2.2.2NVIC相关寄存器2.2.3NVIC工作原理 2.2.4STM32中断优先级基本概念2.2.5STM32中断优先级分组2.2.6STM32NVIC的使用 2.3EXTI2.3.1EXTI基本概念2.3.2E

大疆遥控控制M3508电机二(基于HAL库)

接上一篇文章,话不多说直接开始一、打开我们创建的工程文件,先就建立一个文件夹用来存放我们写的子文件(不建立也行),然后建立pid.h,pid.c存入我们建立的文件夹中,并把它的源文件和头文件添加进去,最后记得编译一下。二、遥控器部分先在main.h中定义一个遥控器接收数据的结构体,参考了官方的定义不过我删了一部分不需要的。typedefstruct{  struct  {    signedshortch0;    signedshortch1;    signedshortch2;    signedshortch3;    unsignedchars1;    unsignedchars2

STM32定时器编码器模式实现直流有刷电机测速(HAL库)

前言最近在做一个单片机大作业,要用到直流有刷,在这里把学习编码器的知识记录一下,学习参考资料:正点原子DMF407电机控制专题教程_V1.0编码器测速原理我所使用的编码器是市面上常见的磁电增量式编码器,其有AB两相,用于输出电机转动时的脉冲数,AB两相的先后顺序决定了电机的转动方向这其实就是单片机的外部计数器模式,51中也带有同样的功能信号从通道被采样后的处理过程如下编码器的计数接口是利用脉冲的边沿来计数的,我们知道AB两相都有脉冲且相位差为90度,那么一次检测最多可以得到四个边沿,此时我们可以通过配置计数的方式来实现不同的边沿计数由图可以看出,总共有三种计数方式供我们选择,不同的模式对应了不

HAL库 STM32 串口通信

一、实验条件将STM32的PA9复用为串口1的TX,PA10复用为串口1的RX。STM32芯片的输出TX和接收RX与CH340的接收RX和发送TX相连(收发交叉且PCB上默认没有相连,所以需要用P3跳线帽进行手动连接),CH340的另一端通过USB口引出与USB线相接。CH340作用:RS232电平标准转USB电平标准)。再使用USB转串口线实现PC与板子的通信。PC端需要安装CH340虚拟串口驱动,目的是为了有CH340的通信协议。在使用串口调试助手进行通信时注意一下几点。1.发送英文字符需要用一个字符即8位,发送汉字需要两个字符即16位,如上图,发送汉字“宋”实际是发送“CB(110010

hal库实现us延时

用hal库实现us延时一般有两种做法,一种是用定时器,一种是用系统自带的滴答计数器本文章主要介绍用系统自带的滴答计数器来实现延时1、实现函数voidHAL_Delay_us(uint32_tnus){ //设置定时1us中断一次 HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000000);//调用系统自带的延时函数 HAL_Delay(nus-1);//将定时中断恢复为1ms中断 HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);}2、实现思路2.1:用cubemx生成的代码中,系统定时器每次计数完都会中断一次

【STM32】HAL库入门学习

目录1.前言2.Hal库特点3.获取方法3.1下载3.2所在目录4.HAL库用户手册结构4.1用户手册的文档4.2“ADC”外设解析4.3ExportedFunctions4.4ExportedTypes4.5ExportedConstants4.6ExportedMacros4.6PrivateContants4.7PrivateMacros4.8PrivateFunctions5.结论1.前言        ST为开发者提供了非常方便的开发库:有标准外设库(SPL库)、HAL库(HardwareAbstractionLayer,硬件抽象层库)、LL库(Low-Layer,底层库)三种。前者

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、ModbusTCP是什么?1.1.1ModbusTCP介绍1.1.2报文格式二、W5500配置三.读保持寄存器&&写单一寄存器函数1.代码展示2.参考资料总结前言本章节是博主学习ModbusTCP所写的一篇文章一、ModbusTCP是什么?1.1.1ModbusTCP介绍ModbusTCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbusTCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了ModbusRTU了,那我也抽空学

STM32 HAL库 STM32CubeMX -- SPI

文章目录一、SPI协议简介SPI物理层SPI协议层二、SPI的架构三、通讯过程四、STM32CubeMX配置五、SPIHAL库函数一、SPI协议简介SPI(SerialPeripheralInterface)协议,即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD等设备与MCU间,要求通讯速率较高的场合。SPI物理层SPI通讯使用3条总线及片选线,3条总线分别为SCK、MOSI、MISO,片选线为SS(CS),它们的作用介绍如下:(1)SS(SlaveSelect):从设备选择信号线,常称为片选信号线,也称为NSS、CS,以下用NSS表示。低电平表示选中当有多个SP