中级会员
 
- 积分
- 328
- 金钱
- 328
- 注册时间
- 2018-7-20
- 在线时间
- 117 小时
|
5金钱
楼主做的是F103的外设到内存的DMA接收,但是现在每次只能接收一位,然后程序就不再接收数据了,DMA配置应该没问题,USART中断函数没写,主函数代码如下:
int main(void)
{
u8 t=0;
u16 i;
RS485_2(); //USART标准初始化 注意 波特率为9600
MYDMA_Config(DMA1_Channel6,(u32)&USART2->DR,(u32)Send_Data,10);//DMA1通道7,外设为串口2,存储器为SendBuff,长(TEXT_LENTH+2)*100.
RS485_TX_EN=0;//置0 接收
delay_ms(1);
USART_DMACmd(USART2, USART_DMAReq_Rx, ENABLE);
DMA_Cmd(DMA1_Channel6, ENABLE); //启动DMA通道
while(1)
{
if(DMA_GetFlagStatus(DMA1_FLAG_TC6)!=RESET)//等待通道6传输完成
{
DMA_ClearFlag(DMA1_FLAG_TC6);//清除通道6传输完成标志
break;
}
}
while(1);
为什么每次只能接收一位啊,数据的DMA使能接收应该写在USART2的接收中断函数里面吗,求助
|
|