草庐IT

HAL_GPIO_ReadPin

全部标签

【STM32】HAL库——串口中断只接收到两个字符

【STM32】HAL库——串口中断只接收到两个字符一、问题描述二、解决方法三、原因分析一、问题描述环境:STM32CubeMX(6.7.0)+MDK-ARM(V5.36.0.0)+STM32F103C8T6使用XCOM发送字符串(总共8个字符),单片机进行解析为ModBus协议失败,只接收到前两个字节的数据。二、解决方法原串口中断回调函数:voidHAL_UART_RxCpltCallback(UART_HandleTypeDef*huart){if(huart->Instance==USART1)//判断是哪个串口调用回调函数{if(modbus.reflag==1)//有数据包正在处理

【轮式平衡机器人】——TMS320F28069片内外设之GPIO

引入接下来的几期博客会介绍轮式平衡机器人TMS320F28069片内外设,了解片内外设的基本原理,内容较为基础,都是些简单的simulink模型,旨在将复杂的原理过渡到simulink软件应用。足够了解的博友可跳过。后续还将会结合MATLAB/Simulink实现TMS320F28069外设的模型搭建实验环境和自动代码生成。一、GPIO基本介绍TMS320F28069有54个GPIO,对应芯片输出的54个引脚,分为A、B两组——A组包括GPIO0~GPIO31,B组包括GPIO32~GPIO58(除了GPIO45~GPIO49),且每个引脚都有自己的复用功能。4种基本配置:通用I/O口用GPx

普中STM32-PZ6806L开发板(HAL库函数实现-无源蜂鸣器响动)

简介本篇将驱动无源蜂鸣器进行5KHz的响动。电路原理图蜂鸣器电路原理图主芯片驱动引脚原理图其他知识蜂鸣器类型蜂鸣器分为有源蜂鸣器:触发就会响。无源蜂鸣器:需要给源,输出一定频率的音频信号,震动发声;占空比为什么占空比总是50%呢?当蜂鸣器的信号占空比较低时,即高电平时间较短,低电平时间较长。这时蜂鸣器的发声强度会较低,声音持续时间也较短。当蜂鸣器的信号占空比较高时,即高电平时间较长,低电平时间较短。这时蜂鸣器的发声强度也会较高,但声音持续时间相对较短。因为蜂鸣器在高电平时间过长的情况下,虽然能够充分振动产生较大的声音,但声音传播时间变短,导致发声时间较短。这种情况下,蜂鸣器的声音更加尖锐和紧凑

荔枝派zero驱动开发05:GPIO操作(使用GPIO子系统)

参考:https://zhuanlan.zhihu.com/p/112708449上一篇:荔枝派zero驱动开发04:GPIO操作(寄存器方式)下一篇:更新中…设备树修改由于默认设备树默认设备树配置了LED,需要确保在设备树中禁用默认的LED配置,参考上篇操作(注释/leds节点或将/leds节点状态设为disabled)在根节点下创建gpioled节点 gpioled{ compatible="user,led"; status="okay"; gpios=;/*PG0green*/ //gpios=,; };其中compatible与status为常见属性,compatible可以

STM32第二节——GPIO

1什么是GPIO        GPIO就是通用输入输出端口的简称,GPIO是一种灵活的引脚(或针脚)配置,允许微控制器与外部世界进行数字输入和输出的通信。每个GPIO引脚可以被配置为输入或输出,从而使它们能够执行各种不同的任务。STM32芯片的GPIO被分成很多组,每组有16个引脚(也有可能少于16个),如型号为STM32F103VET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOE共5组GPIO,该芯片一共100个引脚,其中GPIO引脚就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接

STM32--GPIO(8种工作模式)

目录一、GPIO基本介绍二、GPIO基本结构分析1、保护二极管2、上拉、下拉电阻3、施密特触发器        4、P-MOS管和N-MOS管 三、GPIO的8种工作方式 1、浮空输入2、上拉输入  3、下拉输入4、模拟输入5、开漏输出6、推挽输出7、复用开漏输出8、复用推挽输出一、GPIO基本介绍什么是GPIO?GeneralPurposeInputOutput:通用输入输出端口;作用:控制或者采集外部器件的信息的外设;STM32GPIO简介GPIO特点:1、不同型号的芯片,IO数量可能不同;2、IO口每次翻转需要2个时钟周期;3、每个IO口都可以作为中断;4、支持8中工作模式;电气特性:工

STM32—HAL库中断/DMA控制和完成串口通信

目录一、解决的问题二、串口通讯协议和RS-232的介绍以及USB/TTL转232模块的工作原理  1、 串口协议和RS-232标准: (1)串口协议:(2)RS-232标准:  2、RS232电平与TTL电平的区别  3、USB/TTL转232“模块(CH340芯片为例) (1)基本原理: (2)CH340模块介绍:​三、搭建STM32开发环境(HAL库环境) 四、利用HAL库新建一个中断控制串口通信的工程  五、完善通过中断方式控制串口通信的keil5工程 (1)本工程中几个函数简介:(2)编写代码思路:  (3)完善keil5工程代码:六、基于中断控制串口通信的电路连接与烧录运行 1、电路

STM32 Hal库FreeRTOS统计CPU占比 找出有问题的任务 仅需一个函数搞定 超简单

一、实现目标STM32F103基于Hal库跑FreeRTOS,统计CPU占比找出有问题的任务,类似实现一个windows系统的任务查看界面。代码运行结果如下二、思路记录任务的时间点,相减获得任务所占用的时间,所得时间/总时间,得到该CPU占比。 三、实现函数只需要调用一个vTaskGetRunTimeStats:获得任务的运行信息,形式为可读的字符串。voidvTaskGetRunTimeStats(signedchar*pcWriteBuffer);四、操作步骤1、连接串口后,在freertos.c里面定义一个全局变量,存在所有任务的栈的信息,注意,pcWriteBuffer必须足够大。st

一起玩儿物联网人工智能小车(ESP32)——14. 用ESP32的GPIO控制智能小车运动起来(二)

摘要:本文主要讲解如何使用Mixly实现对单一车轮的运动控制。下面就该用程序控制我们的小车轮子转起来了。打开Mixly软件,然后单击顶部“文件”菜单中的“新建”功能,我们来开启一个新程序的开发工作。我们的工作同样是先从最简单的开始,初期只控制一个轮子,实现轮子的正转3秒钟、停止3秒钟、反转3秒钟、停止3秒钟,然后再正转……,依次循环。在进行具体开发之前,再回忆一下使用GPIO的步骤有哪些吧(以后会看到大部分的硬件功能都是这个模式)。首先是设置工作模式和参数,对设备进行初始化工作。其次是控制GPIO端口输出高电平或者低电平。第一步设置GPIO工作模式的工作由Mixly自动完成了,我们不需要做什么

STM32 HAL库函数HAL_SPI_Receive_IT和HAL_SPI_Receive的区别

背景前段时间开发一个按键板驱动,该板用的STM32F103系列单片机,前任工程师用STM32CubeMX生成的工程,里面全是HAL库调用,我接手后,学习了下HAL库的用法,踩坑不少,特别是带IT后缀的函数,初学者对其的理解很容易出错,特此记录一下。项目中的按键板通过SPI总线与主板连接,按键板是Slave设备,因此无法确定什么时候收到主板的读写请求,要么轮询SPI控制器的rxfifo是否非空,要么依赖SPI控制器提供的中断机制,在中断里将rxfifo内容读出来。两种Receive流程说明一下,SPI的BPW(bitsperword)设置为8,因此文中一个word的size就是一个字节。轮询:H