【E1203】使用DMA方式传输SPI接口OLED显示数据(附代码)

2021-09-14 20:16:50      索炜达电子      766     

项目编号:E1203

文件大小:5M

源码说明:带中文注释

开发环境:C编译器

简要概述:

因为每次用CPU去刷新OLED,会使得CPU大量的工作用于与OLED屏幕的数据传输上,明明是一个很简单的过程却百倍浪费不少CPU资源。于是萌生了用DMA方式将显示数据传输至OLED屏幕。

使用的OLED是某宝上很常见的中景园的7针0.96寸OLED。

目录│文件列表:

 └ OLED_DMA

    │ EventRecorderStub.scvd

    │ OLED_DMA.uvguix.CYS

    │ OLED_DMA.uvoptx

    │ OLED_DMA.uvprojx

    ├ CORE

    │  │ core_cm3.c

    │  │ core_cm3.h

    │  └ startup_stm32f10x_hd.s

    ├ DebugConfig

    │  │ OLED_DMA_STM32F103ZE_1.0.0.dbgconf

    │  └ Target_1_STM32F103ZE_1.0.0.dbgconf

    ├ HARDWARE

    │  ├ DMA

    │  │  │ dma.c

    │  │  └ dma.h

    │  ├ KEY

    │  │  │ key.c

    │  │  └ key.h

    │  ├ LED

    │  │  │ led.c

    │  │  └ led.h

    │  ├ OLED

    │  │  │ oled.c

    │  │  └ oled.h

    │  └ SPI

    │     │ spi.c

    │     └ spi.h

    ├ Listings

    │  │ OLED_DMA.map

    │  └ startup_stm32f10x_hd.lst

    ├ Objects

    │  │ core_cm3.crf

    │  │ core_cm3.d

    │  │ core_cm3.o

    │  │ delay.crf

    │  │ delay.d

    │  │ delay.o

    │  │ dma.crf

    │  │ dma.d

    │  │ dma.o

    │  │ ExtDll.iex

    │  │ key.crf

    │  │ key.d

    │  │ key.o

    │  │ led.crf

    │  │ led.d

    │  │ led.o

    │  │ main.crf

    │  │ main.d

    │  │ main.o

    │  │ misc.crf

    │  │ misc.d

    │  │ misc.o

    │  │ oled.crf

    │  │ oled.d

    │  │ oled.o

    │  │ OLED_DMA.axf

    │  │ OLED_DMA.build_log.htm

    │  │ OLED_DMA.hex

    │  │ OLED_DMA.htm

    │  │ OLED_DMA.lnp

    │  │ OLED_DMA.sct

    │  │ OLED_DMA_OLED_DMA.dep

    │  │ spi.crf

    │  │ spi.d

    │  │ spi.o

    │  │ startup_stm32f10x_hd.d

    │  │ startup_stm32f10x_hd.o

    │  │ stm32f10x_adc.crf

    │  │ stm32f10x_adc.d

    │  │ stm32f10x_adc.o

    │  │ stm32f10x_bkp.crf

    │  │ stm32f10x_bkp.d

    │  │ stm32f10x_bkp.o

    │  │ stm32f10x_can.crf

    │  │ stm32f10x_can.d

    │  │ stm32f10x_can.o

    │  │ stm32f10x_cec.crf

    │  │ stm32f10x_cec.d

    │  │ stm32f10x_cec.o

    │  │ stm32f10x_crc.crf

    │  │ stm32f10x_crc.d

    │  │ stm32f10x_crc.o

    │  │ stm32f10x_dac.crf

    │  │ stm32f10x_dac.d

    │  │ stm32f10x_dac.o

    │  │ stm32f10x_dbgmcu.crf

    │  │ stm32f10x_dbgmcu.d

    │  │ stm32f10x_dbgmcu.o

    │  │ stm32f10x_dma.crf

    │  │ stm32f10x_dma.d

    │  │ stm32f10x_dma.o

    │  │ stm32f10x_exti.crf

    │  │ stm32f10x_exti.d

    │  │ stm32f10x_exti.o

    │  │ stm32f10x_flash.crf

    │  │ stm32f10x_flash.d

    │  │ stm32f10x_flash.o

    │  │ stm32f10x_fsmc.crf

    │  │ stm32f10x_fsmc.d

    │  │ stm32f10x_fsmc.o

    │  │ stm32f10x_gpio.crf

    │  │ stm32f10x_gpio.d

    │  │ stm32f10x_gpio.o

    │  │ stm32f10x_i2c.crf

    │  │ stm32f10x_i2c.d

    │  │ stm32f10x_i2c.o

    │  │ stm32f10x_it.crf

    │  │ stm32f10x_it.d

    │  │ stm32f10x_it.o

    │  │ stm32f10x_iwdg.crf

    │  │ stm32f10x_iwdg.d

    │  │ stm32f10x_iwdg.o

    │  │ stm32f10x_pwr.crf

    │  │ stm32f10x_pwr.d

    │  │ stm32f10x_pwr.o

    │  │ stm32f10x_rcc.crf

    │  │ stm32f10x_rcc.d

    │  │ stm32f10x_rcc.o

    │  │ stm32f10x_rtc.crf

    │  │ stm32f10x_rtc.d

    │  │ stm32f10x_rtc.o

    │  │ stm32f10x_sdio.crf

    │  │ stm32f10x_sdio.d

    │  │ stm32f10x_sdio.o

    │  │ stm32f10x_spi.crf

    │  │ stm32f10x_spi.d

    │  │ stm32f10x_spi.o

    │  │ stm32f10x_tim.crf

    │  │ stm32f10x_tim.d

    │  │ stm32f10x_tim.o

    │  │ stm32f10x_usart.crf

    │  │ stm32f10x_usart.d

    │  │ stm32f10x_usart.o

    │  │ stm32f10x_wwdg.crf

    │  │ stm32f10x_wwdg.d

    │  │ stm32f10x_wwdg.o

    │  │ sys.crf

    │  │ sys.d

    │  │ sys.o

    │  │ system_stm32f10x.crf

    │  │ system_stm32f10x.d

    │  │ system_stm32f10x.o

    │  │ usart.crf

    │  │ usart.d

    │  └ usart.o

    ├ STM32F10x_FWLib

    │  ├ inc

    │  │  │ misc.h

    │  │  │ stm32f10x_adc.h

    │  │  │ stm32f10x_bkp.h

    │  │  │ stm32f10x_can.h

    │  │  │ stm32f10x_cec.h

    │  │  │ stm32f10x_crc.h

    │  │  │ stm32f10x_dac.h

    │  │  │ stm32f10x_dbgmcu.h

    │  │  │ stm32f10x_dma.h

    │  │  │ stm32f10x_exti.h

    │  │  │ stm32f10x_flash.h

    │  │  │ stm32f10x_fsmc.h

    │  │  │ stm32f10x_gpio.h

    │  │  │ stm32f10x_i2c.h

    │  │  │ stm32f10x_iwdg.h

    │  │  │ stm32f10x_pwr.h

    │  │  │ stm32f10x_rcc.h

    │  │  │ stm32f10x_rtc.h

    │  │  │ stm32f10x_sdio.h

    │  │  │ stm32f10x_spi.h

    │  │  │ stm32f10x_tim.h

    │  │  │ stm32f10x_usart.h

    │  │  └ stm32f10x_wwdg.h

    │  └ src

    │     │ misc.c

    │     │ stm32f10x_adc.c

    │     │ stm32f10x_bkp.c

    │     │ stm32f10x_can.c

    │     │ stm32f10x_cec.c

    │     │ stm32f10x_crc.c

    │     │ stm32f10x_dac.c

    │     │ stm32f10x_dbgmcu.c

    │     │ stm32f10x_dma.c

    │     │ stm32f10x_exti.c

    │     │ stm32f10x_flash.c

    │     │ stm32f10x_fsmc.c

    │     │ stm32f10x_gpio.c

    │     │ stm32f10x_i2c.c

    │     │ stm32f10x_iwdg.c

    │     │ stm32f10x_pwr.c

    │     │ stm32f10x_rcc.c

    │     │ stm32f10x_rtc.c

    │     │ stm32f10x_sdio.c

    │     │ stm32f10x_spi.c

    │     │ stm32f10x_tim.c

    │     │ stm32f10x_usart.c

    │     └ stm32f10x_wwdg.c

    ├ SYSTEM

    │  ├ delay

    │  │  │ delay.c

    │  │  └ delay.h

    │  ├ sys

    │  │  │ sys.c

    │  │  └ sys.h

    │  └ usart

    │     │ usart.c

    │     └ usart.h

    └ USER

       │ main.c

       │ startup_stm32f10x_hd.lst

       │ stm32f10x.h

       │ stm32f10x_conf.h

       │ stm32f10x_it.c

       │ stm32f10x_it.h

       │ system_stm32f10x.c

       └ system_stm32f10x.h

TAGDMA
  • 8 次
  • 1 分