草庐IT

HAL_StatusTypeDef

全部标签

电磁寻迹智能车HAL库基于cubeMX—三轮(分段PID+归一化+差速+均值滤波+多路ADC+三叉+环岛+十字)

一、杂谈拖了好久才来更文章….是因为一直比较忙,哈哈。工程在文末今年呢,是第二次参加智能汽车校赛,本来也是参加了飞卡的,但是因为某些原因(包括个人的也有包括组队的一些其实现在看来也就那样的问题)我退出了,说有遗憾那必然是有的,因为毕竟哪个工科男生没有一个做车车的想法呢,但不后悔,因为有了更多时间去做其它也想做的事情。所以这个智能车校赛就当作过过车瘾了。说一下大致的情况吧,我写程序调车,另一个同伴搭车做硬件,我们是高年级组了要求的是做三轮车,去年也参加了做的四轮车,去年调了一个月接近,也是我一个人调的程序,最后拿了三等奖。其实三轮车和四轮车区别不大,无非就改改代码控制而已。今年的三轮车组别,我调

stm32编码器电机测速(hal库)

记录一下今天参考别人的代码实现了四个电机的测速。 编码器被广泛应用于电机测速,实现电机闭环控制。所以不论是自己做小车还是后续参加各种比赛,必须要学会编码器测速。一.参数           编码电机其实就是一个带有编码器的电机,我的这个电机是一个带霍尔传感器的电机,型号是JGB37-520,然后我的电机减速比是30(一定要记住,买的时候也要看清电机减速比是多少,涉及到转速的计算),额定电压12V,然后就是编码器的参数了,见下图电机驱动模块我用的TB6612的四路的板子,就是下面这款,很好用,就是稍微有点贵。二.常用测速方法主要分为M法、T法和M/T法,详情见这篇文章STM32CubeMax编码

基于正点原子F103精英板和CubeIDE的Hal库LCD驱动移植(从零开始)

最近在学习王维波老师的《STM32Cube高效开发教程》,王老师移植的是普中科技的驱动,而我手动移植了一下正点原子的lcd驱动,看了网上的诸多教程,有的博客存在一些bug,于是乎手动整理了一下,带来了移植驱动的全过程和问题解答。希望对即将入门嵌入式的小伙伴有一点帮助。准备环节:正点原子的官方例程(精英板和mini板两者驱动有些许区别,我们用精英板)、CubeIDE开发环境。CubeMX配置:第一步:打开CubeIDE,新建项目,选择单片机型号以及项目名称。第二步:CubeMX初始化RCC、SYS相关 第三步:分配时钟树,勾选生成.c/.h代码  第四步:FSMC的配置在左侧的Connectiv

基于正点原子F103精英板和CubeIDE的Hal库LCD驱动移植(从零开始)

最近在学习王维波老师的《STM32Cube高效开发教程》,王老师移植的是普中科技的驱动,而我手动移植了一下正点原子的lcd驱动,看了网上的诸多教程,有的博客存在一些bug,于是乎手动整理了一下,带来了移植驱动的全过程和问题解答。希望对即将入门嵌入式的小伙伴有一点帮助。准备环节:正点原子的官方例程(精英板和mini板两者驱动有些许区别,我们用精英板)、CubeIDE开发环境。CubeMX配置:第一步:打开CubeIDE,新建项目,选择单片机型号以及项目名称。第二步:CubeMX初始化RCC、SYS相关 第三步:分配时钟树,勾选生成.c/.h代码  第四步:FSMC的配置在左侧的Connectiv

stm32(HAL)库编码器电机pid代码及利用VOFA+对Pid波形显示调参

stm32(HAL)库编码器电机pid代码及利用VOFA+对Pid波形显示调参基本介绍PID控制是一种经典的反馈控制算法,它通过不断地调整输出来使系统的实际值与设定值尽量接近,并保持在设定值附近。PID控制器由三个部分组成:比例§、积分(I)和微分(D)。比例作用(P):比例作用通过测量实际值与设定值之间的偏差,乘以一个比例系数来产生输出。输出与偏差成正比,用来调整系统的响应速度和稳定性。较大的比例系数会增加系统的灵敏度,但可能导致过渡振荡。积分作用(I):积分作用通过将偏差的累积值乘以一个积分系数来产生输出。积分作用能够消除系统的静差,提高系统的稳定性和响应速度。然而,过大的积分系数可能导致

基于STM32CUBEMX,HAL库蓝牙通信

 蓝牙通信(实现手机与stm32连接)1.准备工作蓝牙模块HC-05模块安卓APP软件HC-05蓝牙模块支持AT指令。要进入AT指令模式,需要先按住蓝牙模块上的按键,接通电源,当模块上的LED灯进入慢闪后再松开按键,此时已经进入AT指令模式,可以进行AT指令设置1。常用的AT指令包括:AT+VERSION?返回HC-05的软件版本号AT+NAME?返回HC-05的名字AT+UART?返回蓝牙波特率AT+UART=115200,0,0设置串口波特率115200,1位停止位,无校验位AT+NAME=bluetooth修改蓝牙模块的名字为bluetoothAT+PSWD?查询配对密码AT+PSWD=

关于STM32使用HAL_UART_Receive()无法接收数据的问题

一、问题发现    在项目中我想通过阻塞的方式接收一段来自串口的数据,于是使用了HAL_UART_Receive函数,但跑起来发现一直超时接收不到。网上使劲搜但没搜到啥有用的结果,那只能自己捣鼓了。一开始怀疑是硬件的问题,于是用示波器直接连到对应的rx脚上,发现数据正常;于是我又尝试使用中断接收的方式,发现也能接收。那么,基本可以确定是HAL_UART_Receive这个函数本身有问题了。 二、问题追踪    进入debug,并打开使用的USART的寄存器监视(我使用的USART1),发现RXEN一直都是0,ORE一直都是1(这两个都是ISR寄存器中的标志,关于USART的寄存器介绍,可看看这

【STM32】I2C练习,HAL库读取MPU6050角度陀螺仪

I2C练习MPU6050简介寄存器查询表格STM32CubeMx配置代码文件mpu6050.h文件mpu6050.c文件main.c文件总结MPU6050简介MPU-6000(6050)为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时间轴之差的问题,减少了大量的封装空间。当连接到三轴磁强计时,MPU-60X0提供完整的9轴运动融合输出到其主I2C或SPI端口(SPI仅在MPU-6000上可用)。寄存器查询表格寄存器地址寄存器内容0X3BX轴加速度测量值高位0X3CX轴加速度测量值低位0X3DY轴加速度测量值高位0X3EY轴加速度测量值低位0X3FZ轴加速度测量值高

STM32实现薄膜压力传感器数据采集(标准库和HAL库实现)

单片机型号及压力传感器:STM32F103C8T6最小系统板压力传感器选用的是薄膜压力传感器生活中经常遇到需要测量压力值,因此,考虑到这样的需求从网上买了一个薄膜压力传感器,实物图如下:柔性薄膜压力传感器的产品特点:超薄,厚度小于0.3mm响应速度快寿命长,通过100万次以上按压测试检测电路简单,易于集成应用可定制传感器外形可定制传感器量程参数产品描述:    柔性压力传感器再柔韧轻薄材料上印刷附着力强、耐弯折、灵敏度高的柔性纳米功能材料,使其实现对压力的高灵敏度检测。    柔性薄膜压力传感器是一种电阻式传感器,输出电阻随施加再传感器表面压力的增大而减小,通过特定的压力-电阻关系,可测量出压

STM32实现薄膜压力传感器数据采集(标准库和HAL库实现)

单片机型号及压力传感器:STM32F103C8T6最小系统板压力传感器选用的是薄膜压力传感器生活中经常遇到需要测量压力值,因此,考虑到这样的需求从网上买了一个薄膜压力传感器,实物图如下:柔性薄膜压力传感器的产品特点:超薄,厚度小于0.3mm响应速度快寿命长,通过100万次以上按压测试检测电路简单,易于集成应用可定制传感器外形可定制传感器量程参数产品描述:    柔性压力传感器再柔韧轻薄材料上印刷附着力强、耐弯折、灵敏度高的柔性纳米功能材料,使其实现对压力的高灵敏度检测。    柔性薄膜压力传感器是一种电阻式传感器,输出电阻随施加再传感器表面压力的增大而减小,通过特定的压力-电阻关系,可测量出压