草庐IT

HAL固件库

全部标签

STM32滴答定时器SysTick精准延时,兼容HAL库和标准库

STM32手册资料下载:STM32资料Github链接;STM32资料Gitee链接;注意:Github是国外的,要翻墙,Gitee是国内的,无需翻墙。目录滴答定时器的功能模块化思想什么叫做模块化如何利用keil实现模块化第一步,准备工程文件第二步,建立delay.c和delay.h文件第三步,将sys加入工程第四步 ,加入路径代码.c文件 .h文件HAL库标准库今后如何将delay模块加入其他工程main.c调用初始化实现软件PWM Delay_us()实验Delay_ms()实验代码讲解Delay_Init()代码滴答定时器寄存器介绍 Delay_Init()函数介绍 Delay_us()

大疆开发板A型基于HAL库使用RoboMaster 遥控器(DT7&DR16)及Debug在线调试

资料官网:RoboMaster机甲大师赛1.查看开发板A型芯片资料2.查看遥控器用户手册3.查看开发板A型DBUS接口说明4.查看DBUS参数(配置STM32CubeMX需要) 5.配置STM32CubeMX1)新建newproject,选择开发板A型芯片型号 2)打开外部高速时钟下面是我的时钟树配置 3)配置USART1通信接口 选择Asynchronous(异步通信)方式,并检查对应IO口是否与原理图对应根据DBUS参数,配置参数设置配置DMA (直接存储器访问)优先级选最高,模式选择循环 4)常规配置及生成代码注意生成路径不要有中文  6.参考遥控器用户手册例程配置工程文件(keil5M

STM32 使用HAL库,HAL_Delay()会卡死, 程序一直卡在 HAL_GetTick( ) 函数中(已解决)

今天遇到个很奇怪的问题,不知道为什么,单片机运行一会之后,系统就没反应了,经过调试发现,系统卡在HAL_Delay()中了.之前也遇到过这个问题后来把HAL_Delay去掉了.然后发现不行,还是得有它.不然发串口数据发的太快会乱掉.得慢点发.然后调试到HAL_Delay()方法的内部发现HAL_GetTick()函数一直返回__weakvoidHAL_Delay(uint32_tDelay){uint32_ttickstart=HAL_GetTick();uint32_twait=Delay;/*Addafreqtoguaranteeminimumwait*/if(waitHAL_MAX_DE

STM32的HAL库开发各函数意义、笔记

快速查阅相关函数,请从目录查找GPIOGPIOB->BSRR|=GPIO_PIN_7 在STM32F103中,GPIOB->BSRR|=GPIO_PIN_7 的作用是将GPIOB的第7位引脚设置为高电平(将引脚置1),而GPIOB->BRR|=GPIO_PIN_7 的作用是将GPIOB的第7位引脚设置为低电平(将引脚置0)。下面是对这两个语句的详细说明:GPIOB->BSRR|=GPIO_PIN_7:GPIOB是STM32F103的GPIOB端口的寄存器地址。通过GPIOB指针可以访问和操作该端口的寄存器。BSRR是GPIOB的置位设置寄存器。通过对该寄存器进行操作,可以将对应引脚置为高电平。

STM32 CAN/CANFD软件快速配置(HAL库版本)

STM32CAN/CANFD软件快速配置(HAL库版本)目录STM32CAN/CANFD软件快速配置(HAL库版本)前言1软件编程1.1建立工程1.2初始化1.2.1引脚设置1.2.2CAN基本参数设置1.2.3CAN收发初始化设置1.2.4中断设置1.3CAN发送1.4CAN接收2运行测试结束语前言控制器局域网总线(CAN,ControllerAreaNetwork)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CA

STM32F4 HAL库 GPIO+DMA 控制AD9226(采样率可达16M)

文章目录图形化界面配置引脚配置定时器配置使用TIM8的原因基本配置PWM的配置DAM配置程序设计官方函数的修改中断回调主函数接线效果和问题波形跳变问题最大采样率这里使用的是STM32F407,主频168M。图形化界面配置引脚配置这里使用GPIOD,需要注意的是,所用的引脚要来自同一个端口。定时器配置使用TIM8的原因在STM32F4里,可以当DMA的触发源同时频率可以达到系统主频的定时器只有高级定时器(TIM8和TIM1)基本配置让TIM8产生上溢事件的的频率为主频的十分之一。开启PWM输出,为ADC提供时钟。PWM的配置PWMmode2:让PWM上升沿的时候产生一次上溢事件Pulse=5:产

【05】STM32·HAL库开发-C语言基础知识 | stdint.h介绍 | 位操作 | 宏定义的使用 | 条件编译 | extern声明 | typdef使用 | 结构体、指针、代码规范介绍。

这里写目录标题1.stdint.h简介(了解)2.位操作(掌握)2.1给寄存器某个位赋值3.宏定义(掌握)3.1带参数的宏定义4.条件编译(掌握)5.extern声明(掌握)6.类型别名(typedef)(掌握)7.结构体(掌握)8.指针(掌握)9.代码规范(熟悉)10.总结(了解)1.stdint.h简介(了解)  stdint.h是从C99中引进的一个标准C库的文件,可以在MDK5的安装路径:D:\MDK5.34\ARM\ARMCC\include中找到。  stdint.h定义了很多类型别名,将有符号的char类型定义别名为int8_t等,使用此套别名有易于移植。  在MDK中需要配置才

使用标准库和HAL库的STM32单片机进行串口通信/解决因例程为HAL库的传感器,而其他模块都是标准库,需要将数据用串口传送给标准库的单片机的相关问题

(本文使用STM32F103C8T6,在CubeMX里演示用的是RBT6,但实际上引脚是一样的)        本文着重解决一个大工程中,某些传感器的例程是HAL库的,而其他模块(或算法)都是标准库,导致难以移植的问题。本文的解决方法是:使用一片单片机用HAL库(CubeMX)配置例程,然后用串口将传感器数据传给标准库进行处理。        首先,配置CubeMX,这是我一个项目的某个模块配置的工程,其中,本文使用光学传感器进行演示(什么传感器不重要),通信协议为IIC,串口使用UART2。        传感器的接法:将SDA,SCL,VCC,GND依次接好即可,上图有INT/SDA/SC

STM32 CubeMX PWM三种模式(互补,死区互补,普通)(HAL库)

STM32CubeMXPWM两种模式(HAL库)STM32CubeMXSTM32CubeMXPWM两种模式(HAL库)一、互补对称输出STM32CubeMX设置代码部分二、带死区互补模式STM32CubeMX设置代码三、普通模式STM32CubeMX设置代码部分总结一、互补对称输出STM32CubeMX设置开启互补,设置周期500us(频率2Khz);(1/周期=频率)代码部分HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); //启动PWM通道1信号输出 HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2); //

小米路由器MINI刷Breed并刷写第三方潘多拉固件教程

小米路由器mini参数小米路由器mini参数:处理器:单核MT7620A580MHzROM:16MBSPIFlash内存:128MBDDR22.4GWiFi22(最高速率300Mbps)5GWiFi22(最高速率867Mbps)1个USB2.0接口(DCoutput:5V/1A)2个10/100M自适应LAN口(AutoMDI/MDIX)1个10/100M自适应WAN口(AutoMDI/MDIX)自己的小米路由器mini想安装各种各样的插件,实现远程下载,免广告,SS,多拨各种各样的功能。但是自带的路由器固件不支持这些功能,只能自己动手刷个其他固件。具体刷机教程如下,楼主已经成功刷入固件,具体