野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10584|回复: 3

SPI初始化,调试的时候发现发送缓存区总是不为空,程序卡死在那,求大神帮忙看一下!

[复制链接]
发表于 2017-12-16 18:33:06 | 显示全部楼层 |阅读模式
SPI初始化程序如下:
#define SPI5_CLK  RCC_APB2Periph_SPI5
/*CLK Pin setting*/
#define SPI_CLK_PIN    GPIO_Pin_7
#define SPI_CLK_PORT   GPIOF   
#define SPI_CLK        RCC_AHB1Periph_GPIOF

/*MISO Pin setting*/
#define SPI_MISO_PIN    GPIO_Pin_8
#define SPI_MISO_PORT   GPIOF   
#define SPI_MISO_CLK    RCC_AHB1Periph_GPIOF

/*MOSI Pin setting*/
#define SPI_MOSI_PIN    GPIO_Pin_9
#define SPI_MOSI_PORT   GPIOF  
#define SPI_MOSI_CLK    RCC_AHB1Periph_GPIOF

/*NSS Pin setting*/
#define SPI_NSS_PIN    GPIO_Pin_6
#define SPI_NSS_PORT   GPIOF  
#define SPI_NSS_CLK    RCC_AHB1Periph_GPIOF

void SPI_InitConfig(void)
{
                SPI_InitTypeDef SPI_InitStruct;
                GPIO_InitTypeDef GPIO_InitStruct;
               
                RCC_AHB1PeriphClockCmd(SPI_CLK|SPI_MOSI_CLK|SPI_MISO_CLK|SPI_NSS_CLK,ENABLE);
                RCC_AHB2PeriphClockCmd(SPI5_CLK,ENABLE);
       
                GPIO_InitStruct.GPIO_Mode   = GPIO_Mode_AF;   
                GPIO_InitStruct.GPIO_OType  = GPIO_OType_PP;
                GPIO_InitStruct.GPIO_PuPd   = GPIO_PuPd_NOPULL;  
                GPIO_InitStruct.GPIO_Speed  = GPIO_Speed_50MHz;
               
                GPIO_InitStruct.GPIO_Pin    = SPI_CLK_PIN;
                GPIO_Init(SPI_CLK_PORT, &GPIO_InitStruct);
                GPIO_PinAFConfig(SPI_CLK_PORT,GPIO_PinSource7,GPIO_AF_SPI5);
               
                /*GPIO configuration used as DO*/       
                GPIO_InitStruct.GPIO_Pin    = SPI_MISO_PIN;
                GPIO_Init(SPI_MISO_PORT, &GPIO_InitStruct);
                GPIO_PinAFConfig(SPI_MISO_PORT,GPIO_PinSource8,GPIO_AF_SPI5);
               
                /*GPIO configuration used as DIO*/       
                GPIO_InitStruct.GPIO_Pin    = SPI_MOSI_PIN;
                GPIO_Init(SPI_MOSI_PORT, &GPIO_InitStruct);
                GPIO_PinAFConfig(SPI_MOSI_PORT,GPIO_PinSource9,GPIO_AF_SPI5);

                /*GPIO configuration used as NSS*/
                GPIO_InitStruct.GPIO_Pin    = SPI_NSS_PIN;
                GPIO_InitStruct.GPIO_Mode   = GPIO_Mode_OUT;
                GPIO_Init(SPI_NSS_PORT, &GPIO_InitStruct);
                /*pull NSS signal to HIGH,deactive*/
//                 PULL_SPI5_NSS_HIGH;
                /*SPI configuration*/
                SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
                SPI_InitStruct.SPI_CPHA              = SPI_CPHA_2Edge;
                SPI_InitStruct.SPI_CPOL              = SPI_CPOL_High;
                SPI_InitStruct.SPI_CRCPolynomial     = 7;
                SPI_InitStruct.SPI_Direction         = SPI_Direction_2Lines_FullDuplex;
                SPI_InitStruct.SPI_Mode              = SPI_Mode_Master;
                SPI_InitStruct.SPI_DataSize          = SPI_DataSize_8b;
                SPI_InitStruct.SPI_FirstBit          = SPI_FirstBit_MSB;
                SPI_InitStruct.SPI_NSS               = SPI_NSS_Soft;
       
                SPI_Init(SPI5, &SPI_InitStruct);       

                /*enable SPI5*/
                SPI_Cmd(SPI5,ENABLE);
}

回复

使用道具 举报

发表于 2017-12-18 08:58:38 | 显示全部楼层
确认下引脚、时钟是不是对应上了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-18 22:22:33 | 显示全部楼层
随风 发表于 2017-12-18 08:58
确认下引脚、时钟是不是对应上了

都检查了,还是不对,方便的话能不能帮忙看一下代码,行嘛
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-18 22:25:50 | 显示全部楼层
youcanyouup 发表于 2017-12-18 22:22
都检查了,还是不对,方便的话能不能帮忙看一下代码,行嘛

usart20171213.2.rar (1 MB, 下载次数: 13)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 23:08 , Processed in 0.029383 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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