你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103RCT6 开启SPI1 DMA 一直无法读取 FALSH的数据

[复制链接]
dataozi 提问时间:2017-11-22 17:56 /
阅读主题, 点击返回1楼
收藏 1 评论19 发布时间:2017-11-22 17:56
19个回答
dataozi 回答时间:2017-11-23 11:28:48
安 发表于 2017-11-23 11:21
你的DMA里写的是SPI2,所以我就找的是SPI2的DMA说明。

哦哦 我看到了 谢谢您 我改一下 看看程序的 谢谢您
dataozi 回答时间:2017-11-23 11:30:56
安 发表于 2017-11-23 11:21
你的DMA里写的是SPI2,所以我就找的是SPI2的DMA说明。

改过来了 dma里的一个错误也改过来了 但是 还是卡在程序里


SPI_InitTypeDef         SPI_InitStructure;
       
        SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
        SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
        SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;
        SPI_InitStructure.SPI_CPOL=SPI_CPOL_High;
        SPI_InitStructure.SPI_CPHA=SPI_CPHA_2Edge;
        SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;
        SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_16;
        SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;
        SPI_InitStructure.SPI_CRCPolynomial = 7;

        SPI_Init(SPI1,&SPI_InitStructure);
  SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Rx, ENABLE);
        SPI_Cmd(SPI1,ENABLE); //ʹÄÜSPI

        //½ûÖ¹FLASHƬѡ
        GPIO_SetBits(GPIOA,GPIO_Pin_2);
dataozi 回答时间:2017-11-23 11:44:15
本帖最后由 dataozi 于 2017-11-23 15:15 编辑
安 发表于 2017-11-23 11:21
你的DMA里写的是SPI2,所以我就找的是SPI2的DMA说明。


STM32 W25X16 DMA.zip

下载

2.71 MB, 下载次数: 9, 下载积分: ST金币 -1

回答时间:2017-11-23 14:00:17
我估计是串口的问题,你把串口的DMA去掉。我看你用的是串口1的DMA,但是配置的时候又用的串口3,不知道会不会是这引起的。我有没有资源帮忙测试。
dataozi 回答时间:2017-11-23 14:41:41
安 发表于 2017-11-23 14:00
我估计是串口的问题,你把串口的DMA去掉。我看你用的是串口1的DMA,但是配置的时候又用的串口3,不知道会不 ...

嗯 嗯 我用的是 串口1的 发送DMA 这个测试过了 是可以的 没有用到串口3的 但是我先把串口这一块 关闭了 试一下
聪神聪 回答时间:2017-11-24 11:17:55
dataozi 发表于 2017-11-23 11:27
??我写的SPI1的啊?

楼主你是写SPI1,可是我好像下不了你的代码
dataozi 回答时间:2017-11-24 11:28:50
聪神聪 发表于 2017-11-24 11:17
楼主你是写SPI1,可是我好像下不了你的代码

在第一页的 可以下载的啊?再试一次吧
无薪税绵 回答时间:2017-11-24 14:59:46
请问楼主你开中断没有?
在DMA1_Channel2_Configuration函数中,
DMA_ITConfig(DMA1_Channel2, DMA_IT_TC, ENABLE); //当DMA初始化完成后,开启传输完成中断

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

hejoin-409836 回答时间:2018-6-29 15:46:24
楼主 SPI+DMA 利用SPI_Direction_2Lines_RxOnly模式 读取flash 解决了么?
我下载了你的代码测试 id=SPI_Flash_ReadID(); SPI_Flash_Read(Rx_Buffer,1000,10);都执行正常正确,但是执行SPI_DMA_BufferRead(1000);的时候卡在 while(DMA_GetFlagStatus(DMA1_FLAG_TC2) == RESET);这里 。我的QQ,能否帮忙解决一下
dataozi 回答时间:2018-7-1 10:23:54
hejoin-409836 发表于 2018-6-29 15:46
楼主 SPI+DMA 利用SPI_Direction_2Lines_RxOnly模式 读取flash 解决了么?
我下载了你的代码测试 id=SPI_Fl ...

嗯 嗯 好友通过了
12

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版