OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7337|回复: 1

SPI+DMA奇怪问题

[复制链接]

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2012-9-11
在线时间
0 小时
发表于 2012-10-13 21:21:22 | 显示全部楼层 |阅读模式
void SPI1_DMA_32B(unsigned char *p)
{
    DMA_InitTypeDef DMA_InitStructure;
    DMA_DeInit(DMA1_Channel3);
    DMA_Cmd(DMA1_Channel3, DISABLE);
    SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, ENABLE);   
    DMA_ClearFlag(DMA1_FLAG_TC3 | DMA1_FLAG_TE3 | DMA1_FLAG_HT3 | DMA1_FLAG_GL3);
    DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&SPI1->DR;  //外设地址,spi1
    DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)p;
    DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;   
    DMA_InitStructure.DMA_BufferSize = 8; 
    DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//使能外设地址不自增
    DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;      //使能存储目标地址自增
    DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; 
    DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;   
    DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;               //不循环
    DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;     //通道优先级高
    DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;             //非存储器至存储器模式
    DMA_Init(DMA1_Channel3, &DMA_InitStructure);
             
    DMA_Cmd(DMA1_Channel3, ENABLE);   
}


void vs1053test()
{
//    unsigned char i;
    unsigned char a[8]={0x53,0xef,0x6e,0x44,0,0,0,0};
    unsigned char b[8]={0x45,0x78,0x69,0x74,0,0,0,0};
    xdcs=0;
    while(dq==0) ;

    SPI1_DMA_32B(a);
    while(dq==0) ;
    delay_ms(1860);

    SPI1->DR;
    SPI1_DMA_32B(b);
    xdcs=1;
    while(1);
}
用JTAG调试时,两段数组都能发送出去,运行时却只发送了第一组。。求大神解

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2012-9-11
在线时间
0 小时
 楼主| 发表于 2012-10-13 22:53:55 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-20 04:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表