OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5252|回复: 15

spi实验的问题

[复制链接]

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
发表于 2013-10-22 13:52:13 | 显示全部楼层 |阅读模式

在原子哥的spi实验中是与w25q64进行spi通信,在SPI2的引脚PB13,PB14和PB15都能看到电平变化。现在我现在把主函数都注释了,改成很简单的几句话测试一下,如下:
 while(1)
 {
   SPI2_ReadWriteByte(0x55);
   delay_ms(100);
  }

就像串口通信中我直接给SBUF值一样, 我现在直接给一个值让SPI2发送出去,但是我用示波器观察spi2的引脚,没有发现电平变化,这是什么原因?

 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-10-22 15:30:55 | 显示全部楼层
回复【楼主位】cyz8320350:
---------------------------------
楼主这个问题好好看下SPI通讯吧,教程已经讲的比较清楚了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-22 15:40:37 | 显示全部楼层
回复【2楼】Badu_Space:

回复【楼主位】cyz8320350:
---------------------------------
楼主这个问题好好看下SPI通讯吧,教程已经讲的比较清楚了

---------------------------------
点拨一下吧   我看了教程 还是不理解
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-22 16:15:24 | 显示全部楼层
你SPI以及IO口初始化没有啊?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-22 16:33:04 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
初始化了 SPI2_Init(); 只是在你的程序的基础上改的    在我的理解是这样操作是可以的   即使是双工通信  用原子原本的SPI程序 我把W25Q16 芯片去掉(没有从机)的情况下,SPI2引脚是有电平变化的,  但是我这么单独发一条指令为什么就没有反应?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-22 16:37:39 | 显示全部楼层
回复【5楼】cyz8320350:
---------------------------------
是应该可以输出的。就看你的SPI/IO设置好了没有,你仿真看看寄存器状态。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-22 16:42:46 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
恩恩  完全是按原来的SPI/IO配置来的  原子哥 你说的是用KEIL debug 里面看寄存器的位变化么?  还没有用过  试试看
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-22 17:11:54 | 显示全部楼层
回复【6楼】正点原子:

回复【5楼】cyz8320350:
---------------------------------
是应该可以输出的。就看你的SPI/IO设置好了没有,你仿真看看寄存器状态。

---------------------------------原子哥  我发现 把SPI2_ReadWriteByte(0x55);放在while外部  我复位片子   有时候能看到电平变化   这个是不是我发的数据量小 示波器偶尔捕捉到?
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-10-22 17:15:19 | 显示全部楼层
回复【8楼】cyz8320350:
---------------------------------
将速度调低点,记得原子哥的源码里面速度比较高
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-22 17:21:30 | 显示全部楼层
回复【9楼】Badu_Space:

回复【8楼】cyz8320350:
---------------------------------
将速度调低点,记得原子哥的源码里面速度比较高

---------------------------------
256分频   原子的速度时最小的了
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-10-22 17:27:14 | 显示全部楼层
回复【10楼】cyz8320350:
---------------------------------
接jtag,硬件仿真,单步运行,再看示波器波形,看下电平有没变化,注意看软件上寄存器数值的变化情况
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-22 18:13:55 | 显示全部楼层
回复【11楼】Badu_Space:

回复【10楼】cyz8320350:
---------------------------------
接jtag,硬件仿真,单步运行,再看示波器波形,看下电平有没变化,注意看软件上寄存器数值的变化情况

---------------------------------
我的jilink坏了   估计是驱动有问题
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-22 19:13:22 | 显示全部楼层
回复【6楼】正点原子:

回复【5楼】cyz8320350:
---------------------------------
是应该可以输出的。就看你的SPI/IO设置好了没有,你仿真看看寄存器状态。

---------------------------------
回复【11楼】Badu_Space:

回复【10楼】cyz8320350:
---------------------------------
接jtag,硬件仿真,单步运行,再看示波器波形,看下电平有没变化,注意看软件上寄存器数值的变化情况

---------------------------------
JTAG重装驱动又复活了    由于以前没使用过jtag调试   我按照原子的方法   断点放在main函数的第一句话,然后debug,电机run,在示波器上可以看到spi CLK引脚有电平变化,我的问题是   这个硬件仿真是把速度减慢了  实现出来?   还是点击这个run是循环的跑这个代码  还是执行某个断点的语句?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-22 21:55:59 | 显示全部楼层
回复【8楼】cyz8320350:
---------------------------------
你把delay_ms,去掉,直接猛发...试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2013-9-20
在线时间
6 小时
 楼主| 发表于 2013-10-23 09:27:51 | 显示全部楼层
回复【14楼】正点原子:
回复【8楼】cyz8320350: --------------------------------- 你把delay_ms,去掉,直接猛发...试试。
---------------------------------原子哥,我把dela去掉了,猛发可以,可以看到电平变化,但是我放在while(1)循环外部,初始化函数时执行一次,这样观察确没有电平变化,是不是发送速度的原因?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-23 10:01:24 | 显示全部楼层
一次你的示波器得设置单次捕获才可以,否则很难看到。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-10 19:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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