标题:
自己写的stm32串口和DMA的配合程序的分享
[打印本页]
作者:
伊森亨特
时间:
2018-7-4 16:51
标题:
自己写的stm32串口和DMA的配合程序的分享
现在写了发送和接收,接收的时候需要一个缓冲区,两个程序用的都是串口1,PA9和PA10,可以直接运行现在是数据从内存到数据寄存器、从数据寄存器到内存。
大家有哪些DMA和串口配合的程序也可以分享,我暂时就想到这两个
DMA串口接收数据寄存器到内存.rar
(315.29 KB, 下载次数: 20)
2018-7-5 01:20 上传
点击文件名下载附件
下载积分: 黑币 -5
DMA串口发送内存到数据寄存器.rar
(315.42 KB, 下载次数: 13)
2018-7-5 01:20 上传
点击文件名下载附件
下载积分: 黑币 -5
stm32单片机源程序如下:
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include "bsp.h"
#include "tim.h"
#include "delay.h"
#include "bitband.h"
#include "usart.h"
#include "dma.h"
/* Private define ------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
uint8_t Sendbuff[3000]={0};//定义外部变量数组
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/* Private variables ---------------------------------------------------------*/
u32 i;
/* User Code ---------------------------------------------------------*/
BSP_Config();
delay_init();
usart_config();
usart_gpio_config();
DMA_Config();
//在内存中存储3000个数据,
for(i=0;i<1000;i++){Sendbuff[i]='A';}
for(i=1000;i<2000;i++){Sendbuff[i]='B';}
for(i=2000;i<3000;i++){Sendbuff[i]='C';}
DMA_Cmd(DMA1_Channel4, ENABLE);//使能DMA通道4
USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);//串口1发送DMA请求
/* Main Loop ---------------------------------------------------------*/
while(1)
{
LED1_ON();
delay_ms(500);
LED1_OFF();
delay_ms(500);
}
}
/* Private functions ---------------------------------------------------------*/
复制代码
作者:
伊森亨特
时间:
2018-7-4 17:26
求一个DMA和USART 收发不定长数据的程序,谢谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1