草庐IT

HAL_UART_GetState

全部标签

STM32操作系统FreeRTOS学习——基于hal库

目录一、基础概念1、FreeRTOS2、单片机编程的系统概念a、裸机系统,包括轮询系统(不包括中断)和前后台系统(中断为前台,轮询为后台)b、多任务系统3、FreeRTOS编程风格a、数据类型b、变量名的定义c、函数名d、宏定义二、Cubemx创建工程1、创建任务2、创建队列3、信号量 4、互斥量5、中断三、FreeRTOS基础知识 1、任务创建流程a、任务的概念b、任务的栈c、任务的函数主体d、任务控制块e、任务创建函数(与任务函数主体区分,任务函数主体是任务创建函数的一个参数)f、实现就绪列表g、实现调度器2、FreeRTOS任务执行原则a、合作式任务调度b、抢占式任务调度3、FreeRT

stm32基于UART串口实现modbusRTU(软件方式)

1.实现思路 此程序中,串口通信方式:115200-n-8-1,modbus协议要求帧与帧之间的间隔必须大于3.5个字符时间间隙作为帧与帧之间的分割. 字符时间计算公式:interval_time =character_interval*8 /baud_speed *10^6(微秒)1.1设置定时器,超时时间为interval_time.1.2设置stm32的uart串口接收数据中断,每次读取数据都重置定时器计数为0RDR中断启用标记1.3定时器超时后,说明此时modbus帧已经传输结束,在定时器超时函数中处理响应.2.编程2.1设置定时器超时使用的波特率为115200bit/s,则字符间隔时

STM32机器人控制开发教程No.2 霍尔编码器电机测速以及增量式PID控制(基于HAL库)

01前言本教程使用的机器人控制板拥有4个带编码器的电机接口,4个舵机接口,串口通信接口、SWD下载调试接口、航模遥控接口、USB5V输出接口以及方便与树莓派直接连接的40PIN接口等,板载资源丰富,方便调试!可以控制两轮、四轮差速及阿克曼转向机器人/小车。控制板上的电机接口:机器人小车电机驱动开发——测量小车速度在上一篇文章《STM32机器人控制开发教程No.1驱动电机(基于HAL库)》中介绍了关于如何使用NANO小车上的机器人控制板控制减速电机完成前进、后退和转向等基础功能,如果需要知道小车的实时行进速度该如何进行测量呢?在本章节给你介绍如何使用NANO驱动板进行小车速度的测量!02 STM

【12】STM32·HAL库开发-STM32时钟系统 | F1/F4/F7时钟树 | 配置系统时钟

目录1.认识时钟树(掌握)1.1什么是时钟?1.2认识时钟树(F1)1.2.1STM32F103时钟树简图1.2.2STM32CubeMX时钟树(F103)1.3认识时钟树(F4)1.3.1F407时钟树1.3.2F429时钟树1.3.3STM32F4时钟树简图1.3.4STM32CubeMX时钟树(F407)1.3.5STM32CubeMX时钟树(F429)2,配置系统时钟(掌握)2.1外设时钟使能和失能2.2`sys_stm32_clock_init`函数(F1)2.2.1`HAL_RCC_OscConfig()`函数(F1)2.2.2`HAL_RCC_ClockConfig()`函数(F

【STM32】驱动库的选择:CMSIS Driver、SPL、HAL、LL | 在ARM MDK、STM32Cube中如何选择?

阅读本专栏其他文章,有助于理解本文。👆文章目录一、开发库选择1.1概述1.2CMSISpack1.3SPL库1.4HAL库1.5LL库1.6寄存器开发二、代码对比2.1使用寄存器2.2使用CMSIS库2.3使用SPL库2.4使用HAL库2.5使用LL库2.6使用RTOS三、如何在软件中选择不同的库3.1ARMMDK3.2STM32CubeIDE一、开发库选择1.1概述STM32开发相关的库有很多,它们都是为了方便开发者使用STM32微控制器而提供的软件工具。根据不同的功能和层次,可以将它们分为以下几类:CMSIS库(准确来说是CMSISpack)(CortexMicrocontrollerSo

蓝桥杯嵌入式速成-stm32hal库总结-Cubemx配置+代码编写

复习一周进国赛,只讲具体配置方法,原理网上找。用到最新版的STM32G431,一口气配置完(熟练的话全部配置亲测40分钟搞定)。把省赛所有基础配置过一遍,内容很多,都是干货,觉得有用记得点赞收藏。包括时钟配置、中断配置;外设中常用的GPIO(KEY,LED)、ADC、UART、LCD、I2C、TIM(pwm,cap)、RTC1.Cubemx配置1.1选择芯片1.2时钟配置1.3GPIO根据官方的原理图配置led的GIPO PC8-PC15+PD2(别把这个忘了)和key的GPIOPB0-PB2PA0 GPIO配置默认状态就好1.4 ADC板上电阻R37和R38连接到PB15和PB12   配置

【STM32】使用HAL库进行电机速度环PID控制,代码+调参

主控:STM32F103C8T61.电机测速在进行速度控制之前,我们首先需要进行速度采样,这里参见这篇博文2.电机驱动​这里不细说电机驱动模块的选型和使用,而是说一个常见的误区。我们驱动电机要使用两路PWM,一般是一路给PWM信号,一路是纯低电平。但这其实是不好的,正确的做法是一路给PWM,另一路给纯高电平。此时PWM的占空比越低,电机的速度越快。​如果大家使用的是类似于A4950或者DRV8870这样的电机驱动芯片,它们的数据手册中都会有这样的描述​这是DRV8870的,明确说明了PWM加高电平是最佳控制方式。这是A4950的,用曲线图的方式说明了PWM加高电平时电流会更加稳定。​此外,如果

【文末送书】典型IO接口与总线 | SPI、IIC、UART、GPIO

欢迎关注博主Mindtechnist或加入【智能科技社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关注公粽号《机器和智能》回复关键词“python项目实战”即可获取美哆商城视频资源!博主介绍:CSDN优质创作者,CSDN实力新星,CSDN内容合伙人;阿里云社区专家博主;华为云社区云享专家;51CTO社区入驻博主,掘金社区入驻博主,支付宝社区入驻博主,博客园博主。典型IO接口与总线|SPI、IIC、UART、GPIO1.SPI串行总线2.IIC总线3.UAR

IIC、SPI、Uart、One-wire等常见协议

IIC协议1.简介IIC两线式串行总线,由数据线SDA和时钟线SCL构成,由于数据在同一条线上传输,因此IIC通信是半双工通信方式;IIC使用多主从架构,每个器件都有唯一的识别地址,都可以作为一个发送器或接收器,这里的主从并没有绝对的概念,基本上谁控制时钟线谁就是主设备,此时从设备用于IIC的地址检测和停止位检测。IIC传输速度:    标准模式:100kbit/s    快速模式:400kbit/s    高速模式:3.4Mbit/s术语描述主机初始化发送、产生时钟信号和终止发送的器件从机被主机寻址的器件多主机同时有多于一个主机尝试控制总线,但不破坏报文仲裁是一个在有多主机同时尝试控制总线,

mpu6050六轴陀螺仪dmp姿态解算-C语言移植(stm32+hal)

官方库源文件:1移植官方6个库文件2修改inv_mpu.h中结构体//新增void(*tmp)(void);structint_param_s{#ifdefinedEMPL_TARGET_MSP430||definedMOTION_DRIVER_TARGET_MSP430void(*cb)(void);unsignedshortpin;unsignedcharlp_exit;unsignedcharactive_low;#elifdefinedEMPL_TARGET_UC3L0unsignedlongpin;void(*cb)(volatilevoid*);void*arg;#elifdefi