草庐IT

HAL_GetTick

全部标签

正点原子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+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函数是不会一个字符一个字符去输出

STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数

STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数一、步进电机闭环驱动器二、CubeMx配置1、ClockConfiguration2、脉冲端定时器配置3、使能、方向端引脚配置三、STM32F407定时器中断控制步进电机程序0、引脚配置图1、使用到的HAL库函数2、脉冲触发定时器初始化配置3、步进电机脉冲设置4、步进电机使能、失能、改变方向5、步进电机正转main.c程序6、视频效果演示四、闭环步进电机精准控制脉冲数1、使用到的HAL库函数2、更改步进电机驱动脉冲频率3、更改步进电机脉冲设置程序4、定时器PWM中断回调函数5、步进电机正转一圈闭环main.c程序6

STM32 互补PWM 带死区 HAL

1、设置PWM波频率100KHz,占空比50%,死区时间1us 2、while循环之前启动PWMHAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//启动TIM1_CH1PWM输出HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);//启动TIM1_CH1NPWM输出3、死区计算DT_time=DT_data/FDT_time:死区时间DT_data:写入到单片机里的值F:定时器主频例如:Timer1主频64MHz,死区时间1us1us=DT_data/64MDT_data=64将64写入sBreakDeadTimeConfig.

4针0.96寸OLED的HAL库代码(硬件I2C/全代码/stm32f1/CubeMX配置/包含有正负浮点数/100%一次点亮)

系列文章目录(STM32常用外设/HAL库版)一、HC-SR04超声波模块的使用二、4针OLED的HAL库代码介绍及使用(本篇)三、7针OLED的HAL库代码介绍及使用四、编码电机以及双电机驱动更多有意思的文章点击“我的主页”--------😐更多有意思的视频----->B站@想要亿只独角兽--------😐文章目录系列文章目录(STM32常用外设/HAL库版)前言效果展示全屏滚动并正反相显示不同大小的字符串、整数、汉字、图片正反相显示不同大小的正负浮点数一、OLED驱动的基本功能二、CubeMX中的设置2.1.配置时钟树2.2.配置I2C三、HAL库代码3.1.main.c3.2.oled.

STM32:HAL_RCC_OscConfig中程序卡死问题解决办法

首先,参考该博主的文章(感谢博主的刨根问底),了解卡死的原理:https://blog.csdn.net/qq153471503/article/details/114700884在了解原理后,发现在IAP跳转后,APP卡死是因为不能再次对PLL进行初始化操作,所以导致了卡死现象。经过思考,HAL库所有模块的Init,都会有对应的DeInit,所以在IAP跳转之前,对RCC进行DeInit操作,该问题解决,欢迎批评指正!代码如下:voidJumpToApplication(void){ /*Testifusercodeisprogrammedstartingfromaddress"APPLIC

【STM32+HAL库+CubeMX】UART轮询收发、中断收发、DMA收发方法及空闲中断详解

Author:DrinkCat(szt@drinkcat.com)Copyright©2023DrinkCatOriginallink:DrinkCat’sBlog1.什么是UART?UART是一种异步串行通信接口,常用于通过串口与外部设备进行通信。它通过发送和接收数据帧来实现数据传输,使用起来相对简单。UART通常包含发送器(Transmitter)和接收器(Receiver),通过两根信号线(传输线)进行双向通信。2.UART协议内容简介UART协议将一长串数据切成很多固定长度的小段,分别发送。每小段数据前后会加上一些附加数据以保证通信的实时性和准确性,最后形成的每个小段叫做一个数据包——