野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13067|回复: 5

STM32 SPI 硬件模式 程序卡死在等待发送缓冲区清空处 不知原因,请指教

[复制链接]
发表于 2016-1-10 10:48:29 | 显示全部楼层 |阅读模式
问题描述,如题
回复

使用道具 举报

发表于 2016-1-10 11:02:12 | 显示全部楼层
楼主连问题描述都懒得描述啊。你是用SPI发送什么?做的哪个实验?啥板子?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-10 11:28:31 | 显示全部楼层
本帖最后由 Lee_Sincere 于 2016-1-10 11:31 编辑

不好意思,使用的是野火MINI  STM32F103VE, 看的教程自己写的一个与MFRC522进行通讯的实验 用SPI发送的8-bit的数据,但是程序卡死在 while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);  SPI的配置:
        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_Low;
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
        SPI_InitStructure.SPI_CRCPolynomial = 7;
        SPI_Init(SPI1, &SPI_InitStructure);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-10 15:32:08 | 显示全部楼层
qduwg 发表于 2016-1-10 11:02
楼主连问题描述都懒得描述啊。你是用SPI发送什么?做的哪个实验?啥板子?

问题已解决,也谢谢你指点关于问题的方式!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-10 16:54:19 | 显示全部楼层
问题解决了,就留下解决问题的方法:
正解:如果发送缓冲区没有清空,极有可能是没有开启SPI时钟,重点留意一下时钟频率的问题。
我的问题是:由于疏忽,没有在main函数内初始化SPI,导致错误的产生。
回复 支持 反对

使用道具 举报

发表于 2016-1-10 17:44:41 | 显示全部楼层
解决了就好啦 。哈哈。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-22 08:25 , Processed in 0.038308 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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