欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32F103串口DMA程序 發送前幾次會接收不到數據,多發送幾次就可以
[打印本頁]
作者:
awer
時間:
2019-3-6 17:11
標題:
STM32F103串口DMA程序 發送前幾次會接收不到數據,多發送幾次就可以
程序實現:在串口調試工具中發送數據,串口調試工具接收到相應數據,有需要的可以借鑒一下。
程序有些瑕疵,發送前幾次會接收不到數據,多發送幾次就可以接收到數據。
有大神愿意賜教,或者有相關資料分享,不勝感激!
#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "key.h"
#include "dma.h"
#include "DMA_RX.h"
#include <string.h>
#define send_buf_len 5
u8 send_buf[send_buf_len]="iACM";
u8 USART_RX_BUF[35];//接收緩沖
/*******************************************************************************
* 函 數 名 : Send_Data
* 函數功能 : 要發送的數據
* 輸 入 : p:指針變量
* 輸 出 : 無
*******************************************************************************/
void Send_Data(u8 *p)
{
u16 i;
for(i=0;i<send_buf_len;i++)
{
*p='5';
p++;
}
}
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
int main()
{
u8 i=0;
u8 key;
SysTick_Init(72);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷優先級分組 分2組
LED_Init();
USART1_Init(9600);
KEY_Init();
DMAx_Init(DMA1_Channel4,(u32)&USART1->DR,(u32)send_buf,send_buf_len);
DMA1_4_Init(DMA1_Channel5,(u32)&USART1->DR,(u32)USART_RX_BUF,35);
//Send_Data(send_buf);
USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE); //使能串口1的DMA發送
DMAx_Enable(DMA1_Channel4,send_buf_len); //開始一次DMA傳輸!
while(1)
{
// key=KEY_Scan(0);
// if(key==KEY_UP)
// {
//等待DMA傳輸完成,此時我們來做另外一些事
//實際應用中,傳輸數據期間,可以執行另外的任務
// while(1)
// {
// if(DMA_GetFlagStatus(DMA1_FLAG_TC4)!=0)//判斷通道4傳輸完成
// {
// DMA_ClearFlag(DMA1_FLAG_TC4);
// memset(send_buf,0,35);
// break;
// }
// led2=!led2;
// delay_ms(300);
// }
if(USART_RX_BUF[0])
{
send_buf[0]=USART_RX_BUF[0];
USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE); //使能串口1的DMA發送
DMAx_Enable(DMA1_Channel4,send_buf_len); //開始一次DMA傳輸!
delay_ms(10);
//printf("%s\r\n",USART_RX_BUF);
memset(USART_RX_BUF,0,35);
memset(send_buf,0,35);
MYDMA_Enable(DMA1_Channel5);
}
// }
i++;
if(i%20==0)
{
led1=!led1;
}
delay_ms(10);
}
}
復制代碼
DMA使用實驗1.7z
2019-3-7 00:06 上傳
點擊文件名下載附件
183.28 KB, 下載次數: 29
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1