找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1648|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

用STM32F4的SPI+DMA讀取傳感器數(shù)據(jù),寄存器地址需要每次都發(fā)送嗎

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:895436 發(fā)表于 2021-7-23 11:36 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

用STM32F4的SPI+DMA讀取運(yùn)動(dòng)傳感器數(shù)據(jù),在定時(shí)中斷里控制DMA讀取傳感器的加速度計(jì),溫度,陀螺儀數(shù)據(jù),寄存器地址需要每次都發(fā)送嗎,程序會(huì)卡在ICM42605_SendByte(reg|0x80);。 while(SPI_I2S_GetFlagStatus(ICM42605_SPI,SPI_I2S_FLAG_RXNE) == RESET),接收緩存區(qū)一直不為空,有遇到的大佬嗎。幫忙指點(diǎn)下! {
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中斷發(fā)生與否:TIM 中斷源
{
//讀取數(shù)據(jù)
DMA_ICM_ReadData(ICM_TEMP_OUTH_REG,SendBuff_Size);
SysTick_Delay_ms(1);
//數(shù)據(jù)合并
DATA_Combine();
LED_R_REV;
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//清除TIMx的中斷待處理位:TIM 中斷源
}
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2021-7-23 17:12 | 只看該作者
需要看接收方的說明書,有無自動(dòng)地址+1的功能。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表