查看: 1676|回复: 3

[求助] 谁能帮我看下这问题出在那了!

[复制链接]

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
发表于 2013-8-28 10:13:45 | 显示全部楼层 |阅读模式
 使用KL25内部的SPI模块,总是没法通信,纠结了好长时间了,谁能帮我看看错在那里了!
void SPI0_Init( void )
{
  SIM_SCGC4 |= SIM_SCGC4_SPI0_MASK;                     // Enable SPI0 clock gating
  SIM_SCGC5 |= SIM_SCGC5_PORTD_MASK;                    // Enable PORTD clock gating
  
  PORTD_PCR0 |= PORT_PCR_MUX(2) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK;          // PTD0 as SPI0_PCS0
  PORTD_PCR1 |= PORT_PCR_MUX(2) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK;          // PTD1 as SPI0_SCK
  PORTD_PCR2 |= PORT_PCR_MUX(2) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK;          // PTD2 as SPI0_MOSI
  PORTD_PCR3 |= PORT_PCR_MUX(2) ;                             // PTD3 as SPI0_MISO
  
  SPI0_C1 |= SPI_C1_MSTR_MASK | SPI_C1_SPE_MASK;                                // SPI0 as master,enable SPI0
  
  SPI0_BR |= SPI_BR_SPR(0) | SPI_BR_SPPR(0);                                    // baudrate = 24MHz/(2+1)*2^(2+1)= 1MHz
}
 
void SPI0_WriteByte( unsigned char data )
{
  while( (SPI0_S & SPI_S_SPTEF_MASK) == 0 );
    SPI0_D = data;
}
 
不甚感激!
我知道答案 目前已有2人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2021-1-9 22:53
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    3

    主题

    91

    帖子

    0

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2025-6-22
    发表于 2013-8-29 11:41:04 | 显示全部楼层

    RE:谁能帮我看下这问题出在那了!

    看代码没啥问题,通信不上具体是啥现象?用仿真器跟一下看看问题出在哪?另外再看看SPI外设器件对CPOL和CPHA的要求,一般是00模式。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37

    主题

    132

    帖子

    0

    新手上路

    Rank: 1

    积分
    40
    最后登录
    1970-1-1
     楼主| 发表于 2013-8-29 22:46:23 | 显示全部楼层

    回复:谁能帮我看下这问题出在那了!

    回复第 2 楼 于2013-08-29 11:41:04发表:
    看代码没啥问题,通信不上具体是啥现象?用仿真器跟一下看看问题出在哪?另外再看看SPI外设器件对CPOL和CPHA的要求,一般是00模式。
     
    就好像数据写不出去的样子,主机一向SPIx_D寄存器写值时,SPTEF位不为1,SPRF位反而为1了,并且SPI_D寄存器中的值也不是我写入的值而是0XFF。我现在没用外设了,就用KL25内部的两个SPI模块一个作从机,一个作主机还是无法进行正常的通信,真他妈的奇怪,代码也给别人看了,也说没问题,不知道问题出来那!我把代码贴出来请你帮我看一下好吗,真没办法了!
     

    code.zip

    1.66 KB, 下载次数: 1

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37

    主题

    132

    帖子

    0

    新手上路

    Rank: 1

    积分
    40
    最后登录
    1970-1-1
     楼主| 发表于 2013-8-29 22:47:41 | 显示全部楼层

    回复:谁能帮我看下这问题出在那了!

    回复第 2 楼 于2013-08-29 11:41:04发表:
    看代码没啥问题,通信不上具体是啥现象?用仿真器跟一下看看问题出在哪?另外再看看SPI外设器件对CPOL和CPHA的要求,一般是00模式。
     
    还有对于CPOL和CPHA位的方式我不是很明白,怎么知道从机对这两个位的要求呢?
     
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-6 09:31 , Processed in 0.098747 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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