草庐IT

HAL_GPIO_WritePin

全部标签

STM32F103 CubeMax HAL 库开发,使用TIM定时器和DMA输出PWM方波。采坑日记

STM32F103CubeMaxHAL库开发,使用TIM定时器和DMA输出PWM方波问题描述使用阻塞方式和DMA方式开启PWM的区别简短结论具体分析CubeMax配置首先是CubeMax里面的常规配置TIMDMA配置生成工程KEIL文件撰写观察实验现象工程修改工程修改内容观察现象appendix问题描述我是用的芯片是STM32F103C8T6,其他F103系列的芯片也是一样的。使用CubeMax,并使用HAL库函数对硬件进行驱动。目标是使用TIM定时器的DMA方式,输出PWM方波。使用阻塞方式和DMA方式开启PWM的区别简短结论先说结论:如果只是用TIM输出固定占空比的PWM方波,那么阻塞方式

GPIO四种输入和四种输出模式

GPIO的结构图如下所示:最右端为I/O引脚,左端的器件位于芯片内部。I/O引脚并联了两个用于保护的二极管。输入模式从I/O引脚进来就遇到了两个开关和电阻,与VDD相连的为上拉电阻,与VSS相连的为下拉电阻。再连接到TTL施密特触发器就把电压信号转化为0、1的数字信号存储在输入数据寄存器(IDR)。我们可以通过设置配置寄存器(CRL、CRH)来控制这两个开关,于是就可以得到GPIO的上拉输入模式(GPIO_Mode_IPU)和下拉输入模式(GPIO_Mode_IPD)了。上拉输入模式若GPIO引脚配置为上拉输入模式,在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为1,高电平。下拉

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十四)具体单板的GPIO操作方法

文章目录1.具体单板的GPIO操作方法1.1IMX6ULL的GPIO操作方法1.1.1IMX6ULL的GPIO模块结构1.1.2CCM用于设置是否向GPIO模块提供时钟1.1.3IOMUXC:引脚的模式(Mode、功能)1.1.4GPIO模块内部1.1.5怎么编程1.1.6写GPIO这部分的工作比较复杂,其实写gpio,就是要学会看芯片手册。打印芯片手册,然后研读是学习的必要。最好英文版。1.具体单板的GPIO操作方法1.1IMX6ULL的GPIO操作方法CCM:ClockControllerModule(时钟控制模块)IOMUXC:IOMUXController,IO复用控制器GPIO:Ge

正点原子STM32(基于HAL库)5

目录SRAM实验存储器简介SRAM方案简介硬件设计程序设计程序流程图程序解析下载验证内存管理实验内存管理简介硬件设计程序设计程序流程图程序解析下载验证SD卡实验SD卡简介SD物理结构命令和响应卡模式数据模式SDIO接口简介SDIO主要功能及框图SDIO的时钟SDIO的命令与响应SDIO相关寄存器介绍SD卡初始化流程SDIO模式下的SD卡初始化SPI模式下的SD卡初始化硬件设计程序设计SD卡的HAL库驱动程序流程图程序解析下载验证FATFS实验FATFS简介硬件设计程序设计程序流程图程序解析下载验证SRAM实验STM32F103ZET6自带了64K字节的RAM,对一般应用来说,已经足够了,不过在

安卓RK3399编译驱动MPU6050,实现内核层与HAL层驱动

新手编译安卓驱动学习今天我们一起学习一下如何实现对一款有驱动代码的传感器适配安卓系统开发板:某AR眼镜公司的开发板RK3399文章目录新手编译安卓驱动学习安卓驱动开发常用知识(非新手可以跳过):1.什么是设备树(.dts)2.内核驱动与安卓HAL的关系:开始适配MPU6050驱动:1.先打通内核层,修改DTS,挂载MPU60502.调整kernel下的make文件配置(makemenuconfig)3.HAL层驱动测试安卓驱动开发常用知识(非新手可以跳过):1.什么是设备树(.dts)DTS即DeviceTreeSource设备树源码,DeviceTree是一种描述硬件的数据结构,它起源于Op

STM32 | GPIO口的普通与复用如何配置与用法,本文降从最底层教你如何查看手册运用寄存器来实现GPIO口的配置

🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏🪔本系列专栏-  蓝桥杯嵌入式_勾栏听曲_0的博客🍻欢迎大家 🏹 点赞👍 评论📨 收藏⭐️📌个人主页- 勾栏听曲_0的博客📝🔑希望本文能对你有所帮助,如有不足请指正,共同进步吧🏆🎇安能以身之察察,受物之汶汶者乎?安能以皓皓之白,而蒙世俗之尘埃乎?📈GPIO查看原理图芯片电路原理图芯片数据手册找到引脚定义,理解引脚功能找到功能对应的Port微控制器参考手册 总结GPIOGPIO(英语:General-purposeinput/output),通用型之输入输

GPIO模拟时序控制外设1——WS2812B

文章目录前言WS2812B1.模块简介2.时序介绍3.硬件介绍4.传输速率,以及帧数要求代码1.初始化2.模拟时序1.复位函数2.发送0、1码3.封装发送函数总结前言上一篇文章中介绍了整个板子的最基本功能模块——使用GPIO的通用输入输出实现简单的按键输入以及推挽输出控制的功能。本文深入一步,在只使用GPIO的输入输出功能的基础上,通过查看对应模块的芯片手册,模拟其对应的通信时序来驱动对应的模块。WS2812B首先来个网红模块——WS2812B的彩灯,它在RGB灯的邻域可以说是一方霸主的存在,内部集成了驱动,可以实现三色(255*255*255=16777216种颜色)的全真色彩,且支持串行控

【STM32+cubemx】0030 HAL库开发:DDS芯片AD9833实现简单的波形发生器

大家好,我是学电子的小白白,今天带大家了解一款波形发生器芯片——AD9833。AD9833是AD公司出品的一款DDS波形发生器,能够产生正弦波、三角波和方波输出。1)什么是DDS通俗来讲,DDS是一种把波形预先存储在芯片内部的DAC,只要设置好它的工作频率,就能按这个频率来输出特定的波形。DDS内部主要分成3部分:相位累加器、相位幅度转换、数模转换器(即DAC)。相位累加器:一个周期信号的波形,它的相位是均匀增加的,比如1Hz的正弦波,每1/360秒相位增加1°,增加到360°时又回到0°。相位累加器就是一个不断累加产生相位值的计数器,周期性地累加、清零。相位累加器的位数决定了把一个周期分为多

基于stm32F407的hal库,移植FreeRTOS的具体步骤和遇到的问题(看正点原子的视频)

1.资料准备因为板子是stm32F407的第二版的,所以开始下的资料是旧版本的,但是旧版本的FreeRTOS工程没有hal库的,都是标准库的,这里是下载stm32F407最新版的资料,进行移植。资料可以在正点原子官网下载,如下:http://www.openedv.com/docs/boards/stm32/index.html一定要下载最新的资料(开始用旧版本的移植不成功)。准备stm32F407hal库的实验8基本定时器实验和实验37内存管理实验两个工程,以及FreeRTOS的源码,以内存管理实验为模版,进行移植。2.实验流程添加FreeRTOS源码添加FreeRTOSConfig.h配置

STM32+HAL库调试printf串口打印

目录1新建cubemx工程 2配置系统时钟3配置串口引脚4生成keil工程5补充代码5.1重定向printf5.2main函数6编译烧录7实验现象1新建cubemx工程     选择对应芯片2配置系统时钟    主频为64MHz    对应给到usart2的时钟也为64MHz  3配置串口引脚    查阅原理图,可知usart2引脚连接了USB串口4生成keil工程5补充代码5.1重定向printf    首先介绍一下printf和scanf:        printf函数根据format字符串给出的格式打印输出到stdout(标准输出)中,当然,printf函数是不会一个字符一个字符去输出