草庐IT

HAL_GPIO_WritePin

全部标签

esp8266与stm32、手机通讯(原子云)——hal库(有代码)

本文所讲:正点原子的wifi模块esp8266与正点原子开发板战舰V3(stm32f103zet6)及手机app通讯esp8266分为三种工作模式:STA:8266连接到网络比如wifi、手机热点等。AP:8266作为热点,由手机连接到8266.STA+AP:两种模式兼容。本文章的实现是采用第一种方式。首先百度搜索原子云(手机通讯就是用原子云app),进入设备管理,新建设备,(图中的是我以前建的,如果你第一次使用原子云下图应该没有设备)。选择ESP8266,填写设备名称和密码。上图的的编号和你刚才设置的密码接下来会用到。(用你自己的编号)硬件连接:必须短接:PB11(RX)和GBC_TX以及P

android - 在 GPIO 上中断唤醒 Android 手机

在Android开发板上,我试图根据在GPIO上接收到的中断来唤醒AP,有人可以帮我解决这个问题吗?我的理解是:我们需要创建一个输入设备,并根据接收到的中断更新一个事件到这个设备。然后我相信操作系统会从应用程序发送一个事件发生通知,然后我们需要使用唤醒锁来唤醒AP。请问我的理解是否正确?如果是,那么你能告诉我需要注册哪种输入设备(EV_PWR,EV_KEY..),应用程序将如何获得通知,我们能否从驱动程序中唤醒AP? 最佳答案 通用输入事件传播模型(简化):当输入发生时,内核会生成一个事件。输入事件由输入事件处理程序读取,并将其分派

STM32HAL-完全解耦面向对象思维的架构-时间轮片法使用(timeslice)

目录概述 一、开发环境二、STM32CubeMx配置三、编码 四、运行结果五、代码解释六、总结概述         timeslice是一个时间片轮询框架,完全解耦的时间片轮询框架,非常适合裸机单片机引用。接下来将该框架移植到stm32单片机运行,单片机只需用1个定时器作为时钟即可。友情链接(项目示例):https://download.csdn.net/download/qq_36075612/88498232一、开发环境1、硬件平台   STM32F401CEU6   内部Flash:512Kbytes,SARM: 96Kbytes二、STM32CubeMx配置 2.1、系统时钟配置2.2

【09】STM32·HAL库-新建HAL库版本MDK工程 | 下载STM32固件库

目录1,新建工程前的准备工作(了解)1.1下载相关STM32Cube官方固件包(F1/F4/F7/H7)2,新建HAL库版本MDK工程步骤(熟悉)2.1新建工程文件夹2.1.1Drivers文件夹2.1.2Middlewares文件夹2.1.3Output文件夹2.1.4Projects文件夹2.1.5User文件夹2.2新建一个工程框架2.2.1新建工程2.2.2保存工程2.2.3选择主控型号2.2.4删除文件夹2.3添加文件2.3.1设置工程名和分组名2.3.2添加启动文件2.3.3添加User源码2.3.4添加SYSTEM源码2.3.5添加STM32F1xx_HAL_Driver源码2.

STM32使用DMA实现GPIO的高速翻转

STM32使用DMA实现GPIO的高速翻转一、前言二、原理三、配置IO口四、配置DMA五、程序内容5.1gpio配置5.2keil中添加`.C`和`.h`文件(需要DMA发送控制GPIO的数组波形文件)==如不想这么麻烦的可以略过,在main函数中定义一个数组即可,因为我的数组太大了,而且为了方便更改,故单独存了一个文件==5.3DMA实现GPIO的高速翻转代码实现==(memorytomemory模式)==5.4输出结果总结一、前言接着上一篇博客的内容,上一篇博客实现了定时器输出pwm,这次我们使用DMA来驱动gpio高速翻转,来探索一下stm32h750的gpio翻转极限二、原理这里大家可

STM32F407的串口接收不定长数据两种方式HAL库

文章目录概要整体架构流程不用DMA的方式使用DMA方式小结概要我的博客:https://hahaxiong0204.github.ioSTM32的串口接收不定长数据,最近在看超子说物联网,感觉太麻烦了不适合直接上手,然后我自己总结了两种方法:1、不利用DMA2、利用DMA方式整体架构流程这个HAL整起来是方便,但是HAL整体来说对于细节很到位就是逻辑很强逻辑,也就很繁琐,效率又不高,还缺胳膊少腿的。好用,就比如说这个串口接收,没有专门的方法调用。搞的就很麻烦,我第一次接触就是这感觉哈,大佬除外。然后我看到超子说物联网可以用这个串口的空闲中断来搞这个串口的不定长接收。大致的原理是:在接收每一段数

STM32(HAL库)驱动(1.44寸)TFT-LCD彩屏

目录1、简介2、CubeMX初始化配置2.1基础配置2.1.1SYS配置 2.1.2RCC配置2.2屏幕引脚配置2.3项目生成 3、KEIL端程序整合3.1LCD驱动添加3.2 函数修改3.2.1 lcd.h修改3.2.2lcd_innit.h 修改 3.2.3lcd.c修改 3.2.4 lcd_inut.c修改 3.3 主函数代码3.3.1添加头文件3.3.2 LCD进行初始化3.3.3 while中添加如下代码4、硬件连接5、效果展示1、简介屏幕厂家提供的都是标准库,网上找了找没看到好用的HAL库屏幕驱动,因此本文对HAL库驱动TFT屏幕进行详细讲解。2、CubeMX初始化配置2.1基础配

STM32-HAL库09-CAN通讯(loopback模式)

一、所用材料:STM32F103C6T6最小系统板STM32CUBEMX(HAL库软件)MDK5串口调试助手二、所学内容:初步学习如何使用STM32的CAN通讯功能,在本章节主要达到板内CAN通讯的效果,即32发送CAN信息再在CAN接收中断中用串口打印出来。三、CUBEMX配置:第一步:老三件套-RCC,SYS,时钟树配置第二步:串口配置第三步:CAN配置关键步骤:波特率设置:1Mbit/s,具体配置如下图TESTMODE-Loopback打开接收中断RX0四、MDK5配置:一、can.h头文件配置/*Definetopreventrecursiveinclusion------------

STM32 GPIO模拟i2c通信实现sht20的温湿度采样 并以JSON格式上报(串口调试助手为例)

一、先了解I2C协议由时钟线SCL和数据线SDA构成的通信线路,利用上拉电阻将它们拉成高电平(表示总线空闲)    I2C总线可以有多个从设备,且每个从设备都有一个唯一的7bit地址物理识别,因为I2C地址全0为广播地址,所以I2C总线理论上最多能带2^7-1=127个从设备(I2C:半双工通信的同步串行通信协议,采用电平信号,数据传输采用大端方式MSB,先发高位数据)I2C总线通信时序:I2C协议的起始信号(start):当SCL保持高电平时,SDA出现一个下降沿,产生起始位I2C协议的停止信号(stop):当SCL保持高电平时,SDA出现一个上升沿,产生停止位(停止通信后,总线空闲,处于高

STM32 cubeMX HAL库 LL库 串口死机及overrun error中断

遇到问题一次偶然经历,串口接收数据时,只接了TX和RX,忘了接地线,单片机能发送数据,但是一旦接收一个字节数据,马上就死机,表现为主函数无反应,串口能进中断,也能响应,但是不能再发送数据了。·经过排查,串口是进入了overrun中断·猜测是没接地线导致串口电平错误,一帧接收完后RX引脚处于不正确的电平,导致串口进入错误中断·通过调用FLAG查询函数可以得知overrun中断标志位被置位LL_USART_IsActiveFlag_ORE(constUSART_TypeDef*USARTx)·原因是在配置串口参数时,Overrun和DMAonRXError默认是打开的。关于Overrun和DMAo