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

用STM32F030F4的SPI初始化化CC1120失败,请教

[复制链接]
dwj00 提问时间:2015-2-3 16:42 /
本帖最后由 dwj00 于 2015-2-3 16:43 编辑

当我用硬件SPI接口去初始化CC1120时,初始化失败,但我把SPI接口改成用软件模拟时,初始化能成功
实在找不出问题,特请教。
附:软件SPI发送代码如下:
  1. static u8 SpiWriteRead(u8 Data)
  2. {
  3.         for (int i=0;i<8;i++)
  4.         {
  5.                 if (Data&0x80)
  6.                         GPIOA->BSRR=CC112X_SI;
  7.                 else
  8.                         GPIOA->BRR=CC112X_SI;
  9.                 Data<<=1;
  10.                 GPIOA->BSRR=CC112X_SCK;
  11.                 if (GPIOA->IDR&CC112X_SO) Data++;
  12.                 GPIOA->BRR=CC112X_SCK;
  13.         }
  14.         DebugOut(Data);
  15.         return Data;
  16. }
复制代码
硬件SPI初始化化代码和发送数据函数如下:

  1. void InitSPI()
  2. {
  3.     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOF,ENABLE);
  4.     GPIO_InitTypeDef GPIODef1 ={GPIO_Pin_7|GPIO_Pin_6|GPIO_Pin_5,    //GPIO_Pin
  5.                                 GPIO_Mode_AF,                    //GPIO_Mode
  6.                                 GPIO_Speed_Level_3,                //GPIO_Speed,50M
  7.                                 GPIO_OType_PP,                    //GPIO_OType
  8.                                 GPIO_PuPd_NOPULL                //GPIO_PuPd
  9.                                 };
  10.     SPI_InitTypeDef SPIDef = {    SPI_Direction_2Lines_FullDuplex,//SPI_Direction
  11.                                 SPI_Mode_Master,                //SPI_Mode
  12.                                 SPI_DataSize_8b,                //SPI_DataSize
  13.                                 SPI_CPOL_Low,                    //SPI_CPOL
  14.                                 SPI_CPHA_1Edge,                    //SPI_CPHA
  15.                                 SPI_NSS_Soft,                    //SPI_NSS
  16.                                 SPI_BaudRatePrescaler_64,        //SPI_BaudRatePrescaler
  17.                                 SPI_FirstBit_MSB,                //SPI_FirstBit
  18.                                 7                                //SPI_CRCPolynomial
  19.                                 };
  20.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);
  21.     GPIO_PinAFConfig(GPIOA,GPIO_PinSource5,GPIO_AF_0);
  22.     GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_0);
  23.     GPIO_PinAFConfig(GPIOA,GPIO_PinSource7,GPIO_AF_0);
  24.     GPIO_Init(GPIOA,&GPIODef1);
  25.     SPI_Init(SPI1,&SPIDef);
  26.     SPI_Cmd(SPI1,ENABLE);
  27. }

  28. static u8 SpiWriteRead(u8 Data)
  29. {
  30.         while (!(SPI->SR&SPI_SR_TXE));
  31.         SPI->DR=Data;
  32.         while (!(SPI->SR&SPI_SR_RXNE));
  33.         Data=SPI->DR;
  34.         DebugOut(Data);        
  35.         return Data;
  36. }
复制代码





收藏 评论2 发布时间:2015-2-3 16:42

举报

2个回答
dwj00 回答时间:2015-2-3 17:05:30
张小如 回答时间:2015-6-16 01:00:16
你好,我现在也在用GPIO模拟SPI调试CC1120但死活调不通,感觉是SPI口通信的问题,但我参考你的代码,发现寄存器还是设置不成功,想请您把你的代码发给我一份,以供学习之用,谢谢您!!
我的邮箱:karl_zhang2003@163.com
我的QQ:252568116 可以加我好友,共同讨论问题

所属标签

相似问题

官网相关资源

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