查看: 4622|回复: 14

[其他] 请FAE帮我看看错在那

[复制链接]

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
发表于 2013-8-27 11:53:43 | 显示全部楼层 |阅读模式
 使用的是FRDM-KL25开发板,
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_PE_MASK | PORT_PCR_PS_MASK;          // PTD0 as SPI0_PCS0
  PORTD_PCR1 |= PORT_PCR_MUX(2) | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK;          // PTD1 as SPI0_SCK
  PORTD_PCR2 |= PORT_PCR_MUX(2) | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK;          // PTD2 as SPI0_MOSI
  PORTD_PCR3 |= PORT_PCR_MUX(2) | PORT_PCR_PE_MASK;                             // PTD3 as SPI0_MISO
 
  SPI0_C1 |= SPI_C1_MSTR_MASK | SPI_C1_SPE_MASK;                                // SPI0 as master,enable SPI0
  SPI0_BR |= SPI_BR_SPR(2) | SPI_BR_SPPR(2);                                    // 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;                              
}
void SPI0_ReadByte( unsigned char *data )
{
  while( (SPI0_S & SPI_S_SPRF_MASK) ==0 );
    *data = SPI0_D;
}
为什么写数据时SPTEF位不清零,反而SPRF置1了!
我知道答案 目前已有13人回答
回复

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2013-8-27 13:42:11 | 显示全部楼层

RE:请FAE帮我看看错在那

你可以通过以下https://www.freescale.co
m/webapp/sps/site/prod_summary.jsp?code=FRDM-KL25Z&fpsp=1&tab=Design_Tools_Tab下载FRDMKL25的例程代码,里面有关于SPI的例程
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

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

回复:请FAE帮我看看错在那

回复第 2 楼 于2013-08-27 13:42:11发表:
你可以通过以下https://www.freescale.co
m/webapp/sps/site/prod_summary.jsp?code=FRDM-KL25Z&fpsp=1&tab=Design_Tools_Tab下载FRDMKL25的例程代码,里面有关于SPI的例程
 
 
看了一下,自己也调试了一下,还是没有发现问题在那,请FAE帮我看一下上面贴出的代码错在那里了!
 
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2013-8-28 10:29:48 | 显示全部楼层

RE:请FAE帮我看看错在那

对照参考手册给出的Initialization Flowchart Example for SPI Master Device,你的代码应该是没有问题的,这样吧,你把自己的代码上传一下,我帮你看看,还有能详细点描述你的问题吗!
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-8-28 11:13:08 | 显示全部楼层

回复:请FAE帮我看看错在那

回复第 4 楼 于2013-08-28 10:29:48发表:
对照参考手册给出的Initialization Flowchart Example for SPI Master Device,你的代码应该是没有问题的,这样吧,你把自己的代码上传一下,我帮你看看,还有能详细点描述你的问题吗!
 
我使用FRDM KL25内部的SPI模块驱动一块SPI接口的液晶屏,现在问题在于SPI好像根本就没有将数据写出去,通过单步调试发现有些标志位的情况跟PDF所述不同,第一:在写数据后接PDF所说SPTEF位会为0,但却没有为0,SPRF反而为1了,第二:SPI0_D寄存器当我写放入数据后,它变为0xff了,没有变为我放入的数据。下面我将工程上传(是基于IAR的,有几个drivers没有上传,如果你的IDE是IAR的这几个drivers能找到),SPI部分看了几次了,实在是找不出问题所在,感觉是不是其它部分设置有问题,手头上又没有示波器,纠结两天了,希望FAE帮我解答啊!
 

demo1.rar

2.97 MB, 下载次数: 3

回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-8-28 11:15:07 | 显示全部楼层

回复:请FAE帮我看看错在那

回复第 4 楼 于2013-08-28 10:29:48发表:
对照参考手册给出的Initialization Flowchart Example for SPI Master Device,你的代码应该是没有问题的,这样吧,你把自己的代码上传一下,我帮你看看,还有能详细点描述你的问题吗!
下面是两张单步调试的图片
 
314F3127-73CD-421D-8291-4D473ED94DAC.png
A9337C14-7286-4EA3-AEDD-C24E91CE53E8.png
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-8-28 16:43:15 | 显示全部楼层

回复:请FAE帮我看看错在那

回复第 4 楼 于2013-08-28 10:29:48发表:
对照参考手册给出的Initialization Flowchart Example for SPI Master Device,你的代码应该是没有问题的,这样吧,你把自己的代码上传一下,我帮你看看,还有能详细点描述你的问题吗!
 
请问FAE我上传的那个工程问题找到了吗?
 
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2013-8-28 18:12:56 | 显示全部楼层

RE:请FAE帮我看看错在那

你的代码应该没什么问题,你说你的代码用于驱动液晶显示,请确认你是否遵循该液晶的驱动指令及时序要求,同时有必要检查一下你的硬件电路设计是否正确。
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

积分
40
最后登录
1970-1-1
 楼主| 发表于 2013-8-28 19:04:32 | 显示全部楼层

回复:请FAE帮我看看错在那

回复第 8 楼 于2013-08-28 18:12:56发表:
你的代码应该没什么问题,你说你的代码用于驱动液晶显示,请确认你是否遵循该液晶的驱动指令及时序要求,同时有必要检查一下你的硬件电路设计是否正确。
 
代码没有问题那为什么有些标志位的情况和PDF中所述有出入呢?关于液晶的驱动时序我是用液晶官方的例程移植过来的应该问题不大,关于硬件电路的话还请您细说一下?真快疯了呀!
 
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

132

帖子

0

新手上路

Rank: 1

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

回复:请FAE帮我看看错在那

我把从机断开后,相关的标志位情况还是一样的。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-22 03:03 , Processed in 0.111448 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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