STM32F103驱动SSD1353OLED程序,使用硬件SPI+DMA,帧率50Hz左右
2020-04-10 11:34:47 664KB SSD1353 OLED驱动 硬件SPI DMA
1
工程是基于STM32F207的ADC_DMA的整体程序 #define ADC1_DR_Address ((u32)0x4001204C) //ADC1数据寄存器地址=ADC1基准地址(0x40012000)+数据寄存器偏移地址(0x4c) GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; DMA_InitTypeDef DMA_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);// 使能 GPIO 时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);// 开启ADC时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); // 开启DMA时钟 DMA_DeInit(DMA2_Stream0); DMA_InitStructure.DMA_Channel=DMA_Channel_0; DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;// 外设基址为:ADC 数据寄存器地址 DMA_InitStructure.DMA_Memory0BaseAddr = (u32)&ad;_start;// 存储器地址,实际上就是一个内部SRAM的变量 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;// 数据传输方向为外设到存储器 DMA_InitStructure.DMA_BufferSize = 1;// 缓冲区大小为,指一次传输的数据量 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 外设寄存器只有一个,地址不用递增 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;// 存储器地址 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;// 外设数据大小为半字,即两个字节 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; // 存储器数据大小也为半字,跟外设数据大小相同 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; // 循环传输模式 DMA_InitStructure.DMA_Priority = DMA_Priority_High;// DMA 传输通道优先级为高,当使用一个DMA通道时,优先级设置不影响 DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; // 禁止DMA FIFO ,使用直连模式 DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
2020-03-05 03:09:35 7.37MB STM32F207 ADC DMA
1
在STM32F103单片机上实现,串口2通过DMA接收数据数据,并将接收的数据通过串口1发送出去。
2020-03-04 03:08:29 569KB STM32 103 串口 DMA
1
stm32的DMA可以进行数据的传输,而不用内存的参与。stm32通过DMA向串口发送和就收数据,数据丢失少。
2020-03-04 03:08:15 529KB stm32 DMA USATR
1
STM32的USART通讯 STM32通讯实验实验目的: 理解嵌入式通讯的基本原理; 掌握STM32的USART通讯; 理解通讯协议的使用。
2020-03-04 03:06:03 17.08MB STM32
1
网上使用HAL串口时很多都没有实现不定长数据的接收,要么是限定数据长度,要么是加“0x0a 0x0d”来控制接收完成,找了很久都没有真正找到一个能用的,在很多通信中不可能是定义的,或是加上“0x0a 0x0d”来实现的,由于项目需要,自己阅读STM32 HAL的文档,写出了一个Demo程序,可以实现回显功能(就是通过给STM32发送不定长的数据,可以实现一模一样接收发送的数据),在STM32F429IGT6上验证过,跑了一天没有出现丢失数据的问题,使用DMA发送与接收方式,可以释放CPU部分运算资源,程序中的UART_RX_BUF_SIZE定义为128,就是一次最大接收为128,我在项目中通过改为2048也可以通过一次接收2k的数据,代码量很少,才200多行,很容易看懂,可以移植到不同系列的STM32上,希望这程序能帮助到曾经跟我一样到处找资源解决HAL库与标准库串口使用上不同而痛苦的朋友们
2020-02-22 03:16:36 1.37MB stm32
1
正点原子探索者STM32F407通过TIM_DMA方式驱动WS2812B,多通道PWM多路驱动,可以显示任意颜色,压缩包为整个MDK工程,解压即可用。WS2812B的驱动已封装成.c和.h库文件,移植极其方便。延时函数为特有,采用系统定时器1ms时基循环计数的方式累积时间,不占用主循环时间。
2020-01-24 03:19:23 4.5MB STM32F407 WS2812B TIM_DMA MDK工程
1
使用STM32F407单片机的DMA功能,利用串口接收不定长数据的程序,验证可以使用。
2020-01-23 03:11:19 3.74MB STM32F DMA 串口 不定长数据
1
使用stm32f103RCT6串口DMA空闲中断接收,DMA发送完整源码,修改串口只需修改对应宏定义即可
2020-01-18 03:37:33 2.91MB stm32F103 串口 DMA
1
STM32F103串口使用空闲IDLE中断接收不定长数据程序
2020-01-18 03:20:52 1.7MB stm32F103 idle usart
1