草庐IT

HAL_GPIO_WritePin

全部标签

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

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

Linux下控制GPIO的三种方法

1.应用空间控制gpio1.1简介        在/sys/class/gpio/下有个export文件,向export文件写入要操作的GPIO号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO输入或者输出模式,而value可控制GPIO的状态或者读取状态。/sys/class/gpio/目录下各个文件说明:/sys/class/gpio/export文件用于通知系统需要导出控制的GPIO引脚编号;/sys/class/gpio/unexport用于通知系统取消导出;/sys/class/gpio/gp

Linux下控制GPIO的三种方法

1.应用空间控制gpio1.1简介        在/sys/class/gpio/下有个export文件,向export文件写入要操作的GPIO号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO输入或者输出模式,而value可控制GPIO的状态或者读取状态。/sys/class/gpio/目录下各个文件说明:/sys/class/gpio/export文件用于通知系统需要导出控制的GPIO引脚编号;/sys/class/gpio/unexport用于通知系统取消导出;/sys/class/gpio/gp

RK3568平台入门到精通系列讲解之UBOOT开发篇(GPIO操作)

一、UBOOT启动流程开始之前,不得不说UBOOT启动的三个阶段,这个很重要!第一阶段(汇编语言阶段)1.设置异常向量表,当系统发生异常时总会接入到一个固定地址。2.硬件初始化。配置时钟相关参数,比如分频系数等等(内核时钟,总线时钟,IO接口时钟)3.关闭看门狗。

第四讲—讲解GPIO_Write函数以及相关例程

前言之前讲解了初学GPIO的几个函数,下面介绍又一个函数,此函数对所有端口进行操作GPIO_Write函数,与上一篇里边讲解的其他函数相比,最大的特点是它可以对多个端口进行赋值操作。先看函数定义:voidGPIO_Write(GPIO_TypeDef*GPIOx,uint16_tPortVal){/*Checktheparameters*/assert_param(IS_GPIO_ALL_PERIPH(GPIOx));GPIOx->ODR=PortVal;}第一个参数与之前一样,因为是对多个端口操作,我们以GPIOA的所有端口为例,第一个参数还是GPIOA,重点看第二个参数,看参数定义:*@p

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不知道的概念第一讲:使能、RCC、GPIO与PIN 的区别

使能单片机中的使能通常指的是控制某个器件或模块的开关信号。例如,单片机中的GPIO口可以用来控制LED灯的亮灭,其中需要用到一个使能信号,即一个控制LED灯开关的信号。在程序中,通过设置GPIO口的状态(高电平或低电平)来控制LED灯的亮灭,从而实现使能的功能。除了LED灯,单片机中的其他器件或模块,如LCD显示屏、声音模块等,也需要通过使能信号来控制其开关状态RCCSTM32单片机的RCC(Reset and Clock Control)时钟模块主要负责系统时钟的控制和管理,包括以下作用: 1. 确定CPU的工作频率:RCC模块可以设置CPU的时钟频率,从而控制单片机的工作速度。 2. 控制

【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轴加速度测量值高