草庐IT

HAL_UART_Transmit_DMA

全部标签

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、ModbusTCP是什么?1.1.1ModbusTCP介绍1.1.2报文格式二、W5500配置三.读保持寄存器&&写单一寄存器函数1.代码展示2.参考资料总结前言本章节是博主学习ModbusTCP所写的一篇文章一、ModbusTCP是什么?1.1.1ModbusTCP介绍ModbusTCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbusTCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了ModbusRTU了,那我也抽空学

STM32+PWM+DMA驱动WS2812彩灯模块(附源码)

STM32+PWM+DMA驱动WS2812彩灯模块WS2812模块介绍经典电路实物展示点亮灯光WS2812模块介绍WS2812是一颗数字LED灯珠,采用单总线通讯,每颗灯珠支持24bit的颜色控制,也即RGB888,信号线通过DIN输入,经过一颗灯珠之后,信号线上前24bit数据会被该灯珠锁存,之后将剩下的数据信号整形之后通过DOUT输出经典电路C1为VDD的滤波电容,一般大小为100NF。实物展示点亮灯光//AnhighlightedblockvoidcontrolMultipleLEDs(){//控制LED0colors[0][0]=255;//设置为红色colors[0][1]=0;co

STM32 HAL库 STM32CubeMX -- SPI

文章目录一、SPI协议简介SPI物理层SPI协议层二、SPI的架构三、通讯过程四、STM32CubeMX配置五、SPIHAL库函数一、SPI协议简介SPI(SerialPeripheralInterface)协议,即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD等设备与MCU间,要求通讯速率较高的场合。SPI物理层SPI通讯使用3条总线及片选线,3条总线分别为SCK、MOSI、MISO,片选线为SS(CS),它们的作用介绍如下:(1)SS(SlaveSelect):从设备选择信号线,常称为片选信号线,也称为NSS、CS,以下用NSS表示。低电平表示选中当有多个SP

STM32实现DMA接收串口数据

一..首先我们得配置DMA和USARAT,我们的原理是DMA1的通道5为USART1的RX引脚。 1.USART1的配置voidUSART_Config(void){ GPIO_InitTypeDefGPIO_InitStructure; USART_InitTypeDefUSART_InitStructure;NVIC_InitTypeDefNVIC_InitStruct; //打开串口GPIO的时钟 DEBUG_USART_GPIO_APBxClkCmd(RCC_APB2Periph_USART1,ENABLE);//打开USART1外设时钟 DEBUG_USART_APBxClkCmd(

STM32 Cube IDE HAL库驱动 W25Q128 进行读、写、擦除操作

一、W25Q128相关理论W25Q128存储大小为128M-bit=16MB,可编程位(地址)为Flash_Size=16*1024*1024=16777216B。W25Q128包含256个块、每个块(64KB)16个扇区(4096个扇区)、每个扇区(4KB)有16页、每一页有256个字节(Byte)。写数据:一次最多写一页不能跨页写入;擦除:可以选择擦除一个扇区(4KB)、擦除半个块(32KB)、擦除一个块(64KB)、擦除整个芯片。Flash有一个特点,就是可以将1写成0,但是不能将0写成1,要想将0写成1,必须进行擦除操作。如果要改变数据,就需要先擦除后写数据。可以理解为将W25Q128

STM32 Cube IDE HAL库驱动 W25Q128 进行读、写、擦除操作

一、W25Q128相关理论W25Q128存储大小为128M-bit=16MB,可编程位(地址)为Flash_Size=16*1024*1024=16777216B。W25Q128包含256个块、每个块(64KB)16个扇区(4096个扇区)、每个扇区(4KB)有16页、每一页有256个字节(Byte)。写数据:一次最多写一页不能跨页写入;擦除:可以选择擦除一个扇区(4KB)、擦除半个块(32KB)、擦除一个块(64KB)、擦除整个芯片。Flash有一个特点,就是可以将1写成0,但是不能将0写成1,要想将0写成1,必须进行擦除操作。如果要改变数据,就需要先擦除后写数据。可以理解为将W25Q128

STM32 HAL库开发——入门篇(2):定时器

目录一、TIMER定时器概述1.1软件定时原理1.2定时器定时原理1.3STM32定时器分类1.4STM32定时器特性表1.5STM32基本、通用、高级定时器功能整体的区别二、基本定时器2.1基本定时器简介2.3STM32定时器计数模式及溢出条件2.4定时器中断实验相关寄存器2.5定时器溢出时间计算方法2.6定时器中断实验配置步骤2.7编程实战:定时器中断实验三、通用定时器3.1通用定时器简介3.2通用定时器框图 3.3计数器时钟源3.3.1外部时钟模式13.3.2外部时钟模式23.3.3内部触发输入 3.4通用定时器PWM输出实验3.4.1通用定时器输出比较部分框图3.4.2通用定时器输出P

UVM实战(张强)--- UART实例代码详细注解

目录一、整体的设计结构图二、各个组件代码详解2.1DUT2.2top_tb2.3my_driver2.4my_transaction2.5my_env2.6my_monitor2.7my_agent2.8my_model2.9my_scoreboard2.10my_sequencer2.11base_test2.12my_case02.13my_case1一、整体的设计结构图各个模块的基础介绍:(1)DUT:待测平台,这里为uart串口功能(2)sequence:创建一个my_straction的实例m_trans,将其随机化,最终将其送给sequencer(3)sequencer:uvm_s

UVM实战(张强)--- UART实例代码详细注解

目录一、整体的设计结构图二、各个组件代码详解2.1DUT2.2top_tb2.3my_driver2.4my_transaction2.5my_env2.6my_monitor2.7my_agent2.8my_model2.9my_scoreboard2.10my_sequencer2.11base_test2.12my_case02.13my_case1一、整体的设计结构图各个模块的基础介绍:(1)DUT:待测平台,这里为uart串口功能(2)sequence:创建一个my_straction的实例m_trans,将其随机化,最终将其送给sequencer(3)sequencer:uvm_s

DMA驱动开发---认识DMA

DMA定义:DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。DMA传输方式:DMA的作用就是实现数据的直接传输,而去掉了传统数据传输需要CPU寄存器参与的环节,主要涉及四种情况的数据传输,但本质上是一样的,都是从内存的某一区域传输到内存的另一区域(外设的数据寄存器本质上就是内存的一个存储单元)。四种情况的数据传输如下:外设到内存内存到外设内存到内存外设到外设DW_AHB_DMA主要组件:DMAHardwareRequesetInterfaceAHBMasterInterfaceAHBSla