这节主要是GPIO应用 包括点亮led灯和数码管使用。使用CubeMax进行配置使用keil5编写代码。应用效果演示 链接GPIO介绍General Purpose Input Output (通用输入/输出)简称为GPIO 许多设备或电路只要求有开/关两种状态就够了,比如LED亮与灭。对这些设备控制,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。对GPIO配置
标题目录:STM32CubeMx生成工程中使用Printf函数调试和IAP一、STM调试信息打印方法。1. 新建stm32cubemx工程,配置工程。2. 在stm32cubemx工程,配置工程,勾选使用FreeRtOs系统。3. 生成带系统FreeRtos源码工程(我这里基于keil MDK v5)4. 生成工程,然后用keil打开,在源码里面添加代码,使得USART1重定向到标准Prin
CubeMX配置串口通讯(轮询方式)前言一、串口介绍二、实验过程1.实验材料2.STM32CubeMX配置PWM3.代码实现重载printf轮询接收4.编译烧录5.硬件连接6.实验结果重载printf结果串口轮询接收结果总结 前言本章介绍使用STM32CubeMX对串口进行配置方法,因为我最小系统没有其他外设,所以使用串口进行调试很重要,首先实现重载printf串口输出,然后实现串口通讯有
STM32F103C8T6-CubeMx串口收发程序详细设计与测试(1)——CubeMx生成初始代码关键词:STM32F103C8T6 CubeMX UART 详细程序设计 1.开发环境(1)STM32CubeMX,版本:4.27.0,截止写稿时,最新版本已到6.0.1,但孔丙火实在是用不习惯版本5以后界面,所以还继续用4版本。 图1-1 (2)MDK(Keil),版本:5
使用NVIC时,是为了多个中断分个优先次序1.进行中断分组分组函数:void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);假设,要使中断分组为2NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 2.设置中断优先级别(抢占优先级和子优先级)中断初始化函数:void NVIC_In
1、使用cube配置NIVC中断,配置一下串口中断 2、配置串口 3、如果要在线仿真,要记得配置SYS 4、使用函数: HAL_UART_Transmit(&huart1,testbuff,10,0xFFFF);进行串口发送 5、过程中发现直接配置串口无法进入中断 在主函数加上 下面这两句就可以了 __HAL_UART_ENABLE_IT(&huart1, UART_IT_E
转载 2024-06-28 06:56:52
125阅读
搜索stm32代码大部分DMA配置都和内部AD相连,没有单独实现串口DMA,对于外部AD或者其他应用需要单独启用串口DMA应用,本篇或许可以给大家以参考当我们计算串口波特率 无法满足数据传输速度时候,我们需要将串口设置为DMA发送(不占用CPU资源),但是这样也不够,这个时候我们需要采用抽帧方法进行发送,接下来会依次进行详解。目录串口DMA配置方法DMA串口发送串口DMA配置方法在配置
目录点击这里查看所有博文四、虚拟串口  大家在开发单片机应用时或多或少应该都用过物理串口。对硬件有所了解小伙伴应该都注意到了我们开发板上板载物理串口是通过一块CH340x与PC进行通信,有点开发板用也有可能是CP21xx等等。  这些芯片就是用来连接PC和单片机桥梁,完成ttl通信协议和usb通信协议相互转换。完成这个功能就需要使用这一类物理芯片,一般情况下就是一个芯片完成一路串口
问题是这样:我把BF533UART接口定义为DMA模式接收数据,但是接收到数据总是零. 我不知道是不是我配置有问题.    请高手指点一下.多谢. 配置如下: void Init_DMA(void) { *pDMA6_PERIPHERAL_MAP = 0x6000; *pDMA6_CONFIG = WDSI
欢迎加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域知识和技术。 USART串口通讯1. UART总线与USART接口☞UART☞差分传输☞USART与UART区别2. 串口通讯☞物理层☞协议层 1. UART总线与USART接口☞UARTUART: 通用异步通信收发器/S
目录串口步骤1、确定 IO 口并初始化2、初始化 UATR3、UART 中断配置4、编写 UART 中断服务函数5.1、方法一:重定向 fputc()5.2、方法二:将字符串分割成一个一个字符发送出去效果附源码 串口串口全称为串行接口,采用 全双工、异步通信通信方式,一次只能传输一帧,一帧中包含 起始位、数据位(一般为 8bit )、校验位、停止位。由于采用异步通信,所以通信双方(这里是 上位
转载 6月前
439阅读
 流控制在串行通讯中作用这里讲到“流”, 指的是数据流。数据在两个串口之间传输时, 常常会出现丢失数据现象, 或者两台计算机处理速度不同, 如台式机与单片机之间通讯, 接收端数据缓冲区已满, 则此时继续发送来数据就会丢失。现在我们在网络上通过 MODEM 进行数据传输, 这个问题就尤为突出。流控制能解决这个问题, 当接收端数据处理不过来时, 就发出“不再接收”信号, 发送端
STM32控制SG90舵机PWM部分参数设置解答一、(180度)舵机控制要知道知识二、PWM参数要怎么计算1、为什么要分频呢?2、为什么选择PWM模式1(TIM_OCMode_PWM1)呢?每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。 一、(180度)舵机控制要知道知识我们要知道,SG90舵机接收PWM信号参数:f=50Hz,T=1/f,所以周期为20
前言相较于普通TIM,HRTIM最显著特点就是可以倍频到最大32倍,这就可以使得定时器即使工作在较高频率下,仍有较高分辨率。 因此它主要用于数字电源、照明,电源耗材,太阳能逆变器和无线充电等应用场合,当然,也可以作为通用目的。所用工具:开发板:STM32G474RESTM32CubeMXIDE: Keil-MDK基础知识主定时器(Master Timer): 基于 16 位递增计数器。它可通
一、串行接口相关知识点 并行通信、串行通信概念。 1.串行通信 串行通信是指计算机与I/O设备之间数据传输各位是按顺序依次一位接一位进行传送。通常数据在一根数据线或一对差分线上传输。 2.并行通信 并行通信是指计算机与I/O口设备间通过多条传输线交换数据,数据各位同时进行传送。 单工、半双工、全双工三种通信方式概念。异步串行通信: 通信双方在没有同步时钟前提下,将一个字符(包括特定
转载 6月前
85阅读
定时器详细介绍(基于标准库,原理部分可参考1. 定时器中断配置 配置参考  使用内部时钟:internal clock,其它默认 定时器计数值更新时间:   T为定时时间,Psc为预分频数,Arr为自动重装载寄存器值,Tclk为定时器输入时钟。这里为T为1s,Tclk为72MHz,设置Psc为7200-1,Arr为10000-1。自动重载值。
1. 定时器基础1.1 Counter SettingsPrescaler(16bit)分频值:将定时器之中频率分频。Counter Period : 周期计数值,按照分频后时间进行计数。1.2 Channel InitMode :模式选择1)Mode = Toggele on match(即定时器ARR寄存器周期计数值溢出就翻转电平)Pulse : 电平跳变值。通过定时器计数,计数到Pulse
转载 2024-07-11 14:04:52
163阅读
STM32H7系列芯片不像F4系列,其通过FMC来驱动TFTLCD需要先配置MPU,这个步骤是必要,然后是配置FMC相关设置,最后生成对应代码,同时将自己LCD代码嵌入其中,就可以实现对TFTLCD显示控制!!第一步:在如下配置框中对MPU进行配置!! 图上为什么基地址是0X60000000?请看下图, 上面两个图可以看到,块1才是用于设置F
CubeMX配置STM32并驱动0.96寸OLED 一、使用CubeMX进行基础配置1、配置时钟 这里时钟我试了一下,设置为72MHZ和32MHZ好像对IIC影响区别不是很大,这个就看个人吧。1、配置IIC 在这里只需要选择需要用IICX就可以了。因为我使用是C8T6,所以使用了IIC2就无法再使用USART3了。 然后选择IIC speed MODE为高速模式(其实选择标准模式也可以用
转载 2024-07-17 22:03:01
194阅读
前言前面提到,要想使用DMA首先要配置DMA废话不多说,直接上代码吧typedef struct { //源地址高8位 unsigned char SRCADDRH; //源地址低8位 unsigned char SRCADDRL; //目的地址高8位 unsigned char DESTADDRH; //目的地址低8位 unsigned char DES
  • 1
  • 2
  • 3
  • 4
  • 5