接着以前的2个帖子继续更新:
通过Firmware Lib在EK_STM32F上的学习体会
更新:Firmware Lib在EK_STM32F上的学习体会(CAN/Cortex/Debug)
-----------------------DMA分隔线-----------------------------------
DMA exemple 1:
本例展示了如何使用DMA把数据从FLASH传送到RAM。
运行程序,本例使用DMA通道6(DMA Channel6)作为传输管道。把一块大小为32个字(32-word)缓存,从FLASH中转移到位于RAM的目标区去。传输由软件触发。在程序中激活DMA通道6的memory-to-memory功能。一旦传输完成,DMA将产生一个中断。中断程序将读取DMA中待传输数据的数目(等于0)并清除中断旗位。同时程序将比较源数据和目标数据,检查传输是否正确。
DMA exemple 2:
本例展示了如何利用2个DMA通道来实现把一块数据缓存从内存中通过I2C1传送到I2C2。
本例中,I2C1作为主发送端I2C2作为从接受端,DMA通道5用来把在I2C2接收端收到的数据传送到接收缓存I2C2 Rx buffer,而DMA通道6用来把发送缓存I2C1 Tx buffer中的待发送数据传输到I2C1的数据寄存器(DR register)。
传输结束以后,可以通过比较接收缓存I2C2 Rx buffer和发送缓存I2C1 Tx buffer中的数据来判断传输正确与否。在EKSTM32F板上,我们可以通过点亮不同的LED来反映结果,正确的话,LED1(LD5)会亮起,反之则是LED2(LD4)。
另外,在硬件方面,为了运行本例,需要把I2C1 SCL pin (PB.06) 和 I2C2 SCL pin (PB.10)以及I2C1 SDA pin (PB.07)和 I2C2 SDA pin (PB.11)这2组管脚连接起来,并分别加上至少一个上拉电阻,在EKSTM32F板上,我们可以直接利用已经连接好的电阻R27和R28。
DMA exemple 3:
本例展示了如何利用4个DMA通道来实现把内存中4块数据两两通过SPI1和SPI2交换。即SPI1 Tx buffer中的数据由DMA传送至SPI1发送端发送至SPI2,再由DMA从SPI2接收端传送至SPI2 Rx buffer。SPI2 Tx buffer中的数据也由同样的方法传送到SPI1 Rx buffer。
在本例中SPI1工作在主模式(master)而SPI2工作在从模式(slave)。SPI1的NSS管脚由软件配置。DMA通道2用来把SPI1接收到的数据传送进SPI1 Rx buffer;DMA通道4用来把SPI2接收到的数据传送进SPI2 Rx buffer。相应的DMA通道3用来把SPI1 Tx buffer中的待发送数据送进SPI1发送端,DMA通道5用来把SPI2 Tx buffer中的待发送数据送进SPI2发送端。
一旦SPI1_CR2和SPI2_CR2两寄存器中的TxDMAEN 和 RxDMAEN比特被置一,传送就会开始。传送结束以后,程序会比较SPI1 Tx buffer和SPI2 Rx buffer以及SPI2 Tx buffer和SPI1 Rx buffer中的数据。如果传输正确,则在EKSTM32F板上,LED1(LD5)会亮起,反之则是LED2(LD4)。
DMA exemple 4:
本例展示了如何通过DMA来把数据从一个外设(ADC)传送到另一个外设(TIM1)。
在EKSTM32F上,调节分压器VR1可以实现一个可变0-3.3V模拟输入,通过通道10传向ADC。转化结果通过DMA 通道5传向TIM1_CCR1寄存器。而我们把TIM1的通道1(TIM1_CH1)配置为PWM输出。每次TIM1 的update EVENT都会驱动DMA做一次数据传送。
因此,通过调节VR1,我们可以观察到管脚TIM1_CH1 (PA.08)上的PWM输出占空系数(duty cycle)作相应的改变。
-----------------------EXTI分隔线-----------------------------------
EXTI exemple 1
本例展示了如何配置一条外部中断线路。
在本例中,我们把EXTI line 4作为外部中断源,对于线路上的每一个下降沿,都会产生一个中断,在中断中,我们拨动连接在PC.06上的LED的开关。即每按一次按钮KEY3,都会打开或者关闭LD3。
这个例子原本应用于STM32评估板(STM3210B-EVAL),在评估板上按钮与PB.09相连,而在EKSTM32F上,按钮Button13(Key)与PD.04相连,为了本例能在EKSTM32F上运行,我们把原来的线路9(EXTI Line9)改为线路4(EXTI Line4)。
相关打包下载: 相关链接:https://bbs.21ic.com/upfiles/img/20082/200821413716354.zip |