OpenEdv-开源电子网

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

用STM32F4的SPI+DMA读取传感器数据,寄存器地址需要每次都发送吗

[复制链接]

23

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2020-6-22
在线时间
42 小时
发表于 2021-7-23 10:00:47 | 显示全部楼层 |阅读模式
1金钱
用STM32F4的SPI+DMA读取运动传感器数据,在定时中断里控制DMA读取传感器的加速度计,温度,陀螺仪数据,寄存器地址需要每次都发送吗,程序会卡在ICM42605_SendByte(reg|0x80);。        while(SPI_I2S_GetFlagStatus(ICM42605_SPI,SPI_I2S_FLAG_RXNE) == RESET),接收缓存区一直不为空,有遇到的大佬吗。帮忙指点下!        {
                if((SPITimeout--)==0) return SPI_TIMEOUT_UserCallback(1);       
        }

void SPI_DMA_ENABLE(void)
{
        DMA_Cmd(DMA2_Stream0,DISABLE);
        DMA_SetCurrDataCounter(DMA2_Stream0,SendBuff_Size);
        DMA_Cmd(DMA2_Stream0,ENABLE);
       
        DMA_Cmd(DMA2_Stream5,DISABLE);
        DMA_SetCurrDataCounter(DMA2_Stream5,SendBuff_Size);
        DMA_Cmd(DMA2_Stream5,ENABLE);
       

}

void DMA_ICM_ReadData(u8 reg,u16 NumByteToRead)
{
        ICM42605_CS_LOW();       
       
        SPI1->DR;
        SPI1->SR;
       
        ICM42605_SendByte(reg|0x80);
       
        SPI_DMA_ENABLE();
       
}

void DMA_SPI1_RX_IRQHANDLER(void)
{
        ICM42605_CS_HIGH();                
       
        while(DMA_GetITStatus(DMA2_Stream0,DMA_IT_TCIF0)==RESET);
       
        DMA_ClearITPendingBit(DMA2_Stream5,DMA_IT_TCIF5);
       
        DMA_Cmd(DMA2_Stream0,DISABLE);
       
//        printf("0");

}
void TIM2_IRQHandler(void)
{
        if(TIM_GetITStatus(TIM2,TIM_IT_Update)!=RESET)//检查指定的TIM中断发生与否:TIM 中断源
        {
                //读取数据
                DMA_ICM_ReadData(ICM_TEMP_OUTH_REG,SendBuff_Size);
                SysTick_Delay_ms(1);       
                //数据合并
                DATA_Combine();
                LED_R_REV;

                TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//清除TIMx的中断待处理位:TIM 中断源
        }
}

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

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1477
注册时间
2020-8-19
在线时间
335 小时
发表于 2021-7-23 14:44:03 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 08:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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