armok. 发表于 2024-4-9 14:10:37

【STM32】标准库-SPI-DMA收发数据-读写Flash(W25Q256JV)-仿printf和scanf输入输出

(VIP++福利贴:本资源由坛友16312610  提出申请,由阿莫网上搜集与上传,版权归原作者。)

采用STM32F429IGT6单片机,KeilMDK5.32版本 使用SysTick系统滴答定时器进行延时 LED_R、LED_G、LED_B分别为PH10,PH11,PH12 Key1为PA0,Key2为PC13 KEIL5下载配置有FLASH与SRAM 用SPI5与Flash芯片通信(W25Q256JV),使用了DMA进行收发数据,SPI是同步通信,同时收发数据(其实仅与发TX同步,作为主器件,Tx产生波特率时钟SCK信号) 利用可变参数宏实现printf与scanf 定义了Flash输入输出结构体,利用了共用体 发送与接收缓冲区大小均为一个扇区大小4096B NSS(CS)采用软件控制,因为Flash芯片每发送玩一个指令都要把CS拉高。 注意点:因为TX产生SCK时钟,故需要TX的DMA优先级要比RX的优先级低,本次TX和RX的DMA使用的是一个DMA(DMA2),因为当收发一个数据后,TX和RX的DMA出现仲裁,TX需要发下一个数据,RX需要接收当前数据,为了防止一直发数据,故RX的DMA优先级需要比TX的高开启RX的DMA传输完成中断,在该中断中将CS拉高,结束通讯。

armok. 发表于 2024-4-9 14:10:42

页: [1]
查看完整版本: 【STM32】标准库-SPI-DMA收发数据-读写Flash(W25Q256JV)-仿printf和scanf输入输出