草庐IT

stm32驱动st7789 TFT-LCD屏幕显示

前言一切程序以最后百度网盘链接的程序为准,可能在写文章的时候有些地方有改动。主控:STM32F103C8T61.69TFT-LCD(st7789驱动)一硬件相关说明1.1接线说明CLK:PA4SDA:PA5RST:PA6D/C:PA7BLK:PC14CS:PA81.2硬件初始化TFT-LCD是采用SPI通信的,这里使用stm32f103c8t6的SPI1,初始化代码如下 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能A端口时钟 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|

STM32 基本定时器配置

STM32基本定时器配置文章目录STM32基本定时器配置前言1、原理分析1、定时器溢出时间计算2、定时器参数配置3、总结前言在stm32中的M3内核中,基本定时器只有TIM6和TIM7两个,而基本定时器在stm32中应用的场景比较少,因为基本定时器的功能比较单一,只有一个递增计数功能。就是累加的时钟脉冲数超过预定值时,就能触发中断请求。所以可以用这个定时器中断来实现LED灯周期性的溢出翻转功能。定时器具体的介绍可以参考STM32中文参考手册第15章1、原理分析1、定时器溢出时间计算定时器溢出时间计算公式:Tout=((arr+1)*(psc+1))/TclkTout:定时器溢出时间(单位为s)

STM32MP157驱动开发——按键驱动(工作队列)

文章目录“工作队列”机制:内核函数work_struct结构体定义work使用work:schedule_workworkqueue其他函数工作队列方式的按键驱动程序(stm32mp157)编程思路button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试“工作队列”机制:定时器、下半部tasklet,它们都是在中断上下文中执行,它们无法休眠。当要处理更复杂的事情时,往往更耗时。这些更耗时的工作放在定时器或是下半部中,会使得系统很卡;并且循环等待某件事情完成也太浪费CPU资源了。如果使用线程来处理这些耗时的工作,那就可以解决系统卡顿的问题:因为线程可以休眠。所

STM32CubeMX里面没有 CLion的SW4STM32选项(CLion修改单片机型号)

        大家在使用最新版本的CubeMX按照网上的一些教程配置CLion时通常会遇到编译器选项里面没有SW4STM32的选项的问题。         根据网上的很多人都会要求把CubeMX降低到某个版本以下,但是一直使用低版本肯定不是解决问题的方法。其实在CLion文档里面就有解决方法。大家按照下面的图片里的步骤进入网站就可以看到,官方新建工程的方法。        网址(STM32CubeMXprojects|CLionDocumentation)         这里我就给大家简述一下。首先新建工程,我在桌面上建立一个工程。我的工程名字叫`Test`,这里给工程名很重要,后续会用到

PID理论基础及代码详解【stm32标准库】

一、位式控制算法(引入PID)只考察控制对象当前的状态值。为了能够控制温度,速度等具有惯性性质的利用位式控制算法,框图如上。以温度控制为例:图如下所示。用户设定为SV,假设设定温度为80度,通过传感器将控制对象的温度PV进行获取。(注:执行部件在此处可表示为加热器)SV>PV时,位式控制算法输出H,加热器开始工作,温度上升。SV≤PV时,位式控制算法输出L,加热器停止工作,温度慢慢下降。位式控制算法也称为二位式控制算法,因为输出OUT只有H和L俩种情况,加热器也只有工作和不工作俩种情况。由于控制对象是有一定的惯性的,当加热器由工作到不工作,水并不会温度立刻停止升温(还有一定的余温)来升温。当加

STM32库函数开发外部中断

目录函数介绍:        STC32F10x_rcc:GPIO_EXTILineConfig(uint8_tGPIO_PortSource,uint8_tGPIO_PinSource)EXTI_Init(EXTI_InitTypeDef*EXTI_InitStruct)NVIC_PriorityGroupConfig(uint32_tNVIC_PriorityGroup)NVIC_Init(NVIC_InitTypeDef*NVIC_InitStruct)EXTI15_10_IRQHandlerITStatusEXTI_GetITStatus(uint32_tEXTI_Line)EXTI_

详解STM32的GPIO八种输入输出模式,GPIO各种输入输出的区别、初始化的步骤详解,看这文章就行了(超详细)

在STM32微控制器中,常见的输入输出(GPIO)模式有八种,分别是推挽输出、开漏输出、复用推挽输出、复用开漏输出、浮空输入、上拉输入、下拉输入和模拟输入。下面我将为你解释每种模式的特点和区别,并提供相应的示例代码。文章目录介绍区别初始化和配置例程步骤解释介绍推挽输出(Push-PullOutput):推挽输出模式是最常见的GPIO输出模式。在该模式下,引脚可以输出高电平或低电平,同时具有一定的驱动能力。引脚在输出低电平时形成低阻抗,输出高电平时形成高阻抗,可以驱动外部电路。//初始化推挽输出模式的GPIOGPIO_InitTypeDefGPIO_InitStruct;GPIO_InitStr

stm32定时器方式精确输出指定脉冲个数

文章目录前言1、计数器中断方式原理:主要程序:2、定时器同步方式原理:主要程序:前言本例使用芯片为STM32f407zg使用标准库编程输出指定脉冲个数的PWM方法主要有两种:计数器中断方式和定时器同步方式。项目输出可控双脉冲pwm波形,可根据需要控制输出脉冲个数,查阅网上资料大部分为HAL库配置,自己实际第一次编程有些一头雾水,后查阅官方帮助手册和参考手册,配置出项目,故在此纪录。1、计数器中断方式原理:程序定义两个定时器,定时器1负责计数,开启定时器1比较中断和溢出更新中断,在达到给定的比较值时产生中断,进入中断开启定时器2输出PWM波(设置占空比),在达到溢出值时产生更新中断,停止定时器2

STM32智能小车------TCRT5000循迹

文章目录一、原理讲解1.实物图2.工作原理:3.接线:二、软件驱动代码1.接口定义2.驱动函数总结最终效果⏩大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的普通大学生。⏩进入正题,最近在做小车,目前已经加入红外避障、超声波测距、红外遥控、红外循迹四个传感器,分别实现遥控切换模式、超声波控制距离、避障、循迹功能。⏩本次文章说说循迹功能的实现。⏩非常感谢大家的阅读,如果有不对的地方欢迎指正一、原理讲解1.实物图这种是单路循迹模块,有四个接口,VCC、GND就不用说了,DO就是它的输出信号,然后AO口(模拟信号输出)。我们可以看到上面有两个LED,一个是接上VCC、GND通电之后就亮了,另

STM32MP157开发板Linux+Qt项目实战:智慧家庭

stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux+单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器,集成2个Cortex-A7核和1个Cortex-M4核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRTOS、RT-Thread等实时操作系统。开发板搭配仿真器、显示屏、摄像头、资源扩展板等丰富的扩展模块,可拓展物联网、人工智能等相关技术学习,还可以拓展丰富的项目实战,非常贴合企业当下开发需求,是一款嵌入式Linux入门进阶必备开发板!可学习技术:嵌入式Linux应用/系统/驱动开发、ARM裸机开发、Qt