一、概述 本文主要介绍GPIO作为输出时的寄存器配置。包括时钟配置,输出模式配置。以STM32F10xxx系列为例,配置PA8、PD2端口作为输出,输出高/低电平。二、配置流程 1)GPIO外设时钟 通过查找STM32F10xxx中文参考手册得知,GPIOPORT口的时钟配置在RCC_APB2ENR寄存器的第2~6位,如下图:使能PORTA和PORTD的时钟:RCC->APB2ENR|=1APB2ENR|=1 2) 配置GPIO模式 PORTA的PIN8和PORTD的PIN2配置为通用推挽(PP)输出模式,GPIO速度配置为50MHZ。CRL寄存器配置的是PIN0~
GPIO知识学习1.GPIO的基本概念2.GPIO的实际应用3.功能描述3.1IO结构框图3.2知识铺垫模拟/数字信号VDD、VSS、VCC施密特触发器片上外设3.3功能详述浮空输入上拉输入下拉输入模拟输入开漏输出推挽输出4.GPIO相关寄存器4.1寄存器4.2功能1.GPIO的基本概念GPIO是英文GeneralPurposeInput/Output的缩写,中文翻译为通用输入/输出。它是一种在数字电子系统中常见的接口类型,用于与外部设备进行通信和控制。GPIO接口可以作为输入或输出引脚使用。作为输入引脚时,GPIO可以接收来自外部设备的电信号,并将其转换为数字信号,供系统内部使用。作为输出引
由于STM32cubemx生成的HAL库代码没有printf,为了让这个函数能实现打印功能,我们必须要把这个函数重定向,让它重定向到串口中,把要输出的内容打印到串口中。一、STM32CubeMX配置串口配置好时钟后,选择你的串口,生成代码。二、修改代码——按如图顺序进入到STM32xxxhal.c中,加入如下两条语句,你的huart是数字几,后面就修改成几#include"stdio.h"externUART_HandleTypeDefhuart2;三、增加代码——如图所示把如下代码添加在hal.c中,还是添加在STM32xxxhal.c中,我添加在154-170的位置。intfputc(in
一、gpiod子系统是新版的linux内核引入的控制gpio的子系统,这个子系统的功能更为强大,在很多地方都会碰到,在工作过程中尽量使用gpiod子系统,很有必要学习一下。二、Linux内核GPIOD介绍文档 kernel\Documentation\gpio\consumer.txt,kernel/include/linux/gpio/consumer.h包含下面的函数#ifndef__LINUX_GPIO_CONSUMER_H#define__LINUX_GPIO_CONSUMER_H#include#include#includestructdevice;/***Opaquedescri
本文的初衷一方面是将我的一些关于STM32开发方面浅显的个人经验分享给初学者、并期望得到大佬的批评指正,另一方面是记录自己的实验过程便于回顾。我预感应该要写很多,不过鉴于之前的数篇笔迹中,对于SPI/DMA/ADXL3XX系列加表的使用已经详细描述过了,所以这篇博客只记录系统构建的整体流程。摘要:通过STM32H743VIT6驱动两片adxl355和1片adxl375,采用SYNC信号同步控制方式实现3个传感器的数据,采用FIFO流模式,采用3组SPI+DMA实现数据的同步采集,采用串口1+DMA进行数据传输,采用串口2+中断构建指令系统,具体指令及对应的功能如下图。通过定时器+计数实现了频率
目录1.概述2.GPIO操作2.1确定编号2.2初始化2.3操作GPIO3.VDMA操作3.1设置VDMA3.2VDMA操作代码4.结语1.概述此前的文章介绍如何利用petalinux定制ZYNQ-Linux操作系统。当ZYNQ-Linux系统搭建完毕后,需要在这个系统上开发应用程序以完成特定任务,这里面就涉及到如何在ZYNQ-Linux系统上去操作系统硬件资源的问题。目前,网上介绍的比较多的是需要改写Linux操作系统底层的设备树,并编写设备的驱动程序,这样的好处是可以提供一个统一的硬件接口,做到软硬件分离,可以更好地去保护硬件资源,但是实际操作对于初学者来说比较复杂。本文将介绍一种简单的操
在stdio.h中的printf原本输出到控制台,在单片机应用中一般将其改到串口,并利用串口输出信息来调试程序,非常方便。(本文以USART1为例)此外CubeMX及CubeIDE由于自动生成基础代码,因此每当更改硬件配置的时候,都会被重置生成的基础代码。这里使用goto语句来避免部分修改过的基础代码被替换掉。方法如下:配置CubeMX,选择芯片:选择芯片后勾选右上角蓝色图标:"StartProject"在系统内核中,配置系统时钟。在mode中,选择使用外部晶振。进入ClockConfiguration进行时钟树的配置(根据外接晶振的实际情况配置)进入Connectivity选项卡配置串口,这
本文参考此篇博客并在其基础上进行了修改:STM32F103驱动DHT11温湿度传感器(STM32MXcube,HAL)在此特别鸣谢原文博主!1.软件准备(1)编程平台:Keil5(2)CubeMX(3)XCOM(串口调试助手)2.硬件准备(1)F1的板子,本例使用经典F103C8T6 (2)DHT11——温湿度传感器(3)ST-link 下载器(4)USB-TTL模块(5)杜邦线若干3.CubeMX配置(1)芯片选择STM32F103C8T6 (2)配置RCC、SYS、时钟树配置RCC配置SYS配置时钟树(3)配置GPIO (4)配置串口1(5)设置路径、生成代码工程4、Keil5代码 (1)
目录一、定时器简介二、HAL库配置1.时钟树的配置2.CubeMX的配置三、代码编写四、拓展实验五、实验效果实验目的:利用定时器6控制LED灯的亮灭,间隔500ms实验平台:正点原子精英板一、定时器简介 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型。对于计数模式分为:向上计数模式,向下计数模式,中心对
文章目录一、PS2手柄介绍二、CubeIDE配置三、PS2库1.delay.c2.delay.h3.ps2.c4.ps2.h四、PS2手柄控制电机运动总结一、PS2手柄介绍因为有转接板,所以仅需要与单片机有四根线连接。分为为:名称功能对应引脚标签DI/DAT手柄到单片机的信号传输PA6PS2_DIDO/CMD单片机到手柄的信号传输PA7PS2_DOCS/SEL手柄触发信号PA4PS2_CSCLK时钟信号PA5PS2_CLK二、CubeIDE配置三、PS2库ps2需要一个us级的延时函数,所以需要自建一个delay函数1.delay.c#include"delay.h"voiddelay_us(