野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15374|回复: 13

stm32f103vet6的spi3配置问题

[复制链接]
发表于 2015-12-20 12:11:36 | 显示全部楼层 |阅读模式
/**
  ******************************************************************************
  * @file    bsp_led.c
  * @author  fire
  * @version V1.0
  * @date    2013-xx-xx
  * @brief   ledó|ó?oˉêy?ó?ú
  ******************************************************************************
  * @attention
  *
  * êμ?é??ì¨:ò°?e iSO-MINI STM32 ?a·¢°?
  * ??ì3    :http://www.firebbs.cn
  * ì?±|    :http://firestm32.taobao.com
  *
  ******************************************************************************
  */

#include "bsp_led.h"  
#include "stm32f10x_spi.h"


/**
  * @brief  3?ê??ˉ????LEDμ?IO
  * @param  ?T
  * @retval ?T
  */
void LED_GPIO_Config(void)
{               
                /*?¨ò?ò???GPIO_InitTypeDefààDíμ??á11ì?*/
                GPIO_InitTypeDef GPIO_InitStructure;

                /*?a??LEDμ?íaéèê±?ó*/
                RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
               
                /*????òa????μ?GPIOBòy??*/                                                                                                                          
//                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;       
//          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
//          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_9;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
                GPIO_Init(GPIOA, &GPIO_InitStructure);
       
               
                /*????òa????μ?òy??*/               
/*****************************************************
********PBòy??????************************************
********PB3£?PB4**************************************
******************************************************/       
       
//                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;
//                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
//                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
//                GPIO_Init(GPIOB, &GPIO_InitStructure);

}
void SPI3_Init()
{
       
   GPIO_InitTypeDef GPIO_InitStructure;
   SPI_InitTypeDef  SPI_InitStructure;
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);
/**************************
******AFIO****************
**************************/       
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
         GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
//  AFIO->MAPR =(AFIO->MAPR|0x02000000)&0xFAFFFFFF;
       
       
       
/**************************
******SPI3_NSS*************
**************************/       
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     
         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
         GPIO_Init(GPIOA, &GPIO_InitStructure);
/**************************
******SPI3_CLK*************
**************************/       
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     
         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
         GPIO_Init(GPIOB, &GPIO_InitStructure);
/**************************
******SPI3_DIN*************
**************************/       
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     
         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
         GPIO_Init(GPIOB, &GPIO_InitStructure);
/**************************
******SPI3_DOUT************
***************************/       
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
         GPIO_Init(GPIOB, &GPIO_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_4;
   SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
   SPI_InitStructure.SPI_CRCPolynomial = 7;
   SPI_Init(SPI3, &SPI_InitStructure);
         /***********************
         ******ENABLE SPII3******
         ***********************/
         SPI_Cmd(SPI3, ENABLE);
         
}


/*********************************************END OF FILE**********************/


这是我配置的,请大神看看有什么问题


回复

使用道具 举报

发表于 2015-12-20 13:04:24 | 显示全部楼层
您的问题是什么呢?呵呵
回复 支持 反对

使用道具 举报

发表于 2015-12-20 13:31:19 | 显示全部楼层
qduwg 发表于 2015-12-20 13:04
您的问题是什么呢?呵呵

他的spi3没调通
回复 支持 反对

使用道具 举报

发表于 2015-12-20 13:40:21 | 显示全部楼层
我发程序是已经调通的了  都是103   只不过我用的是encc28j60  你要是用其他的比如flash 只看初始化部分就可以了 在spi.c里  
你这个简单看了一下 没用到PB5吗  
回复 支持 反对

使用道具 举报

发表于 2015-12-20 13:46:40 | 显示全部楼层
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;   //可以改成SPI_CPOL_Low
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//可以改成SPI_CPHA_1Edge
试一试,注意看手册!!
回复 支持 反对

使用道具 举报

发表于 2015-12-20 13:47:05 | 显示全部楼层
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;   //可以改成SPI_CPOL_Low
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//可以改成SPI_CPHA_1Edge
试一试,注意看手册!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-20 14:11:10 | 显示全部楼层
零度的亲吻 发表于 2015-12-20 13:47
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;   //可以改成SPI_CPOL_Low
SPI_InitStructure.SPI_CPHA = S ...

我的spi3_clk没有数据输出啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-20 14:12:18 | 显示全部楼层
qduwg 发表于 2015-12-20 13:04
您的问题是什么呢?呵呵

我用示波器看只有PA15有数据输出而时钟线和数据输出线没有输出
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-20 14:26:28 | 显示全部楼层
andyzhao 发表于 2015-12-20 13:40
我发程序是已经调通的了  都是103   只不过我用的是encc28j60  你要是用其他的比如flash 只看初始化部分就 ...

用到PA15,PB3,PB4,PB5可是只是有片选信号 时钟信号和数据输出没有信号啊
回复 支持 反对

使用道具 举报

发表于 2015-12-20 15:36:41 | 显示全部楼层
lxdfrank 发表于 2015-12-20 14:26
用到PA15,PB3,PB4,PB5可是只是有片选信号 时钟信号和数据输出没有信号啊

没有看到你初始化PB5啊
另外是否失能JTAG映射成普通IO口
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-20 16:48:44 | 显示全部楼层
andyzhao 发表于 2015-12-20 15:36
没有看到你初始化PB5啊
另外是否失能JTAG映射成普通IO口

更改改了  也不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-20 16:50:53 | 显示全部楼层
andyzhao 发表于 2015-12-20 15:36
没有看到你初始化PB5啊
另外是否失能JTAG映射成普通IO口

只要我加上那两句释放JTAG的程序就能用spi3吗?
回复 支持 反对

使用道具 举报

发表于 2015-12-20 16:58:45 | 显示全部楼层
lxdfrank 发表于 2015-12-20 16:50
只要我加上那两句释放JTAG的程序就能用spi3吗?

是滴 啊 正确配置spi3 然后RCC_APB2Periph_AFIO和失能jtag 就完事好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-20 17:20:38 | 显示全部楼层
andyzhao 发表于 2015-12-20 16:58
是滴 啊 正确配置spi3 然后RCC_APB2Periph_AFIO和失能jtag 就完事好了

可是我的时钟线还是没有信号啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 22:45 , Processed in 0.034898 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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