草庐IT

HAL_UART_Transmit_DMA

全部标签

ZYNQ AXI_DMA_UDP以太网传输(二)问题记录

ZYNQAXI_DMA_UDP以太网传输(二)问题记录上一篇文章只是简单的记录一下调试成功的代码但调试成功这个过程很痛苦,踩了很多坑,特此记录,留眼以后查看问题1:DMA传输过程中报错dmaerror参考博客xilinxdma调试笔记ZYNQAXIDMA调试细节在调试过程中出现这类问题基本上都是这一句代码出了问题:axi_dma_start(MAX_PKT_LEN);再往里面跳可以看见这样一个函数,在正点原子提供的例程中是这样的status=XAxiDma_SimpleTransfer(&axidma,(u32)rx_buffer_ptr, pkt_len,XAXIDMA_DEVICE_TO

STM32/GD32学习指南-踩坑之(五)串口收发数据的三种方式:UART接收中断、UART+DMA空闲中断、UART+DMA超时中断,接收不定长数据,纯干货,有史以来最详细的讲解,附源码

一、串口收发功能介绍        常用的串口收发数据的方式一共两种,一种是不使用DMA,直接串口中断收发数据,另外一种是通过串口+DMA收发数据。1.串口接收数据:        对于使用DMA的串口数据收发,一般常用的还可以分为串口接收超时中断和串口空闲中断,所以细分的话,常用的主要有以下三种方式的串口数据接收使用方法:(1)直接串口中断接收数据:        也就是串口data寄存器非空即触发中断,中断标志为:USART_INT_RBNE;该种方法每接收一个字节的数据就会触发一次串口接收中断,当串口接收数据量小或是系统性能要求不高的情况下可以使用,如果串口接收数据量很大,频繁进入串口接

ARM day7 day8 UART串口、PWM蜂鸣器、WDT看门狗、ADC数模转换

一、串口编程   1.看原理图      GPA1_0:RXD2      GPA1_1:TXD2   2.看芯片手册      1)对外设置(GPIO)         GPA1CON:0x11400020 3:0->0x2(RXD2) 7:4->0x2(TXD2)      2)对内设置(uart)         ULCON2:0x13820000 0x3         UCON2: 0x13820004 1:0->01(polling) 3:2->01(polling)         UTRSTAT2:0->1(readyread) 1->1(发送完成)         UBRDI

HAL库 CubeMX STM32采用SDIO实现对SD卡和NAND Flash的读写

目录  完整项目源代码下载地址:HAL库CubeMXSTM32采用SDIO实现对SD卡和NANDFlash的读写资源-CSDN文库  一、选择合适的存储芯片。  可以去雷龙官网白嫖,白嫖链接:免费样品  二、SD卡/SDNAND底层原理  三、硬件设计  1、SDNAND引脚图  2、芯片外观及封装:  3、硬件电路原理图  4、测试用转接板实物图  四、CubeMX配置STM32具体步骤  1、时钟和系统配置  2、配置SDIO  3、配置DMA(可选)  4、设置串口  五、代码编写  1、公共代码  2、常规方式读写  3、DMA方式读写  六、结果分析  1、输入的函数参数是扇区编号,

【正点原子STM32】内存保护单元(MPU)实验(内核地址映射、MPU设置内存区域的访问权限和属性、三种内存类型、Cache缓存、MPU相关寄存器介绍、MPU相关HAL库驱动、MPU基本配置步骤)

一、内存保护单元(MPU)介绍1.1、内核地址映射1.2、MPU设置内存区域的访问权限1.3、MPU配置内存区域的访问属性1.4、三种内存类型对应的情景1.5、可共享Master间数据同步1.6、不同配置下(访问属性:内存类型,是否缓存,是否缓冲,是否共享),性能情况二、Cache简介2.1、读操作和写操作2.2、Core读Cache2.3、Core写Cache2.4、数据不一致问题解决三、MPU相关寄存器介绍3.1、MPU类型寄存器(MPU_TYPE)3.2、MPU控制寄存器(MPU_CTRL)3.3、MPU区域编号寄存器(MPU_RNR)3.4、MPU基地址寄存器(MPU_RBAR)3.5

蓝桥杯STM32 G431 hal库开发速成——GPIO输入——按键长短按,按键单双击

适用于学习了TIM定时器跟GPIO输入(按键)的新手作为练习的综合项目!一、按键长短按功能:长短按四个按键分别点亮八个灯一.整体工作流程这段代码用于检测和处理四个不同按键的嵌入式系统程序,通常用于例如微控制器等硬件上。代码的主要功能是检测哪个按键被按下以及按键被按下的持续时间,并根据这些信息执行不同的动作。1.1定义部分定义按键标志:#definekey1_flag1等定义是为了方便识别哪个按键被按下。这些标志用于在代码中表示不同的按键。定义按键读取的宏:#definekey1HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)等定义是用于读取特定硬件引脚的状态。在这里,它们用

关于STM32 HAL库 (I2C/IIC)问题的解决方法

1.情况介绍:因为某个项目想要颜色识别,去识别球的颜色,但是又不想多来个摄像头,所以想尝试一下颜色传感器的方案,简化流程。然后在淘宝上买了个TCS34725来试试,随后就遇到了问题:HAL库I2C通信了几次就死锁了。我之前也接触过I2C,OLED屏,tft屏,我那时候是通过GPIO口模拟I2C(因为淘宝的和网上的例程大多是这个)来实现的。还有就是九轴陀螺仪的磁力计数据读取,ist8310的例程是HAL库的,但是我那时候的问题是我用我的cubeMX去修改配置,更新之后,I2C就死锁了,但是那时候也没有太过深入,因为没有使用九轴陀螺仪的必要,就改成了六轴陀螺仪,间接没有使用I2C了。现在这个问题又

STM32 CubeMX TIMx编码器模式无法进入中断踩坑记录(顺带解析一下HAL_TIM_Encoder_Start及其_IT函数)

目录问题的开始HAL_TIM_Encoder_Start及其_IT函数解析一个比较好玩的事情问题的开始        今天在用STM32F103VET6实现定时器TIM2编码器功能的时候,预采用中断查询方式对于编码器计数值进行查询,发现程序不能进入中断。工程使用CubeMX生成初始化代码。Main函数中是这样写的: MX_GPIO_Init(); MX_TIM2_Init(); MX_USART1_UART_Init(); /*USERCODEBEGIN2*/   printf("ready!");   HAL_TIM_Encoder_Start(&htim2,TIM_CHANNEL_3); 

SDI-12协议与STM32 进行uart通信

场景是用stm32与一款温湿度传感器通信,不过是基于SDI-12协议,SDI-12时序和UART类似,故采用UART传输,原理图如下其中DIR_OUT_SDI是一个IO引脚,控制UART_TX_SDI是否使能,U10是三态门IC,即拉低DIR_OUT_SDI使能stm32输出,拉高DIR_OUT_SDI失能输出,串口配置8位数据位,偶校验,1位停止位,1200波特率。下面给出发送一个激活命令的示例:#defineSDI_BREAK_TIME13#defineSDI_BREAK_QUIET_TIME20//@brief发送确认激活命令//@paramaddr传感器地址ascii码低7位有效voi

【正点原子STM32】LTDC LCD(RGB屏)实验(TFT LCD、RGB LCD信号线、驱动模式、LTDC驱动LCD-TFT显示器、LTDC控制器、DMA2D-GPU、DMA2D颜色填充步骤)

一、RGBLCD简介二、LTDC介绍2.1、LTDC简介2.2、LTDC控制器框图介绍2.3、LTDC相关寄存器介绍2.4、LTDC相关HAL库驱动介绍三、RGB屏基本驱动步骤四、编程实战1五、DMA2D介绍5.1、DMA2D简介5.2、DMA2D框图介绍5.3、DMA2D相关寄存器介绍六、DMA2D颜色填充的具体步骤七、编程实战2八、总结嵌入式图形系统嵌入式图形系统通常由微处理器、帧缓冲器、显示控制器和显示屏等组成,其工作流程如下:微处理器(Microprocessor):微处理器负责执行程序,并根据程序输出生成要显示的图像数据。这些图像数据通常以像素为单位,表示图像中每个像素的颜色和位置等