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

STM8 SPI要延时

[复制链接]
gang-366961 提问时间:2012-7-24 21:30 /
做了一个SPI与74HC595进行数码管显示,

 
但是在发送数据时,出现了一个怪事:

 
SPI_CR1=0B11000110;
SPI_CR2=0B11000011;
SPI_ICR=0B00000000;

SPI_DR=0x00;
for(A=0;A
收藏 评论9 发布时间:2012-7-24 21:30

举报

9个回答
yjwpm 回答时间:2012-7-24 21:56:28

RE:STM8 SPI要延时

你的SPI的端口速率设置的太高了,设置的低一些,因为595不是高速器件。
gang-366961 回答时间:2012-7-25 07:53:14

回复:STM8 SPI要延时

我试过,把波特率设到128分频,还是不行。
另外,74HC595频率可以达到100M,所以对STM8,应该是够了! 
废鱼 回答时间:2012-7-25 09:48:01

RE:STM8 SPI要延时

发生这种情况,有2种,
1、SPI时序没有掌握好
2、595没有进入接收状态
yjwpm 回答时间:2012-7-25 09:56:56

回复:STM8 SPI要延时

回复第 3 楼 于2012-07-25 07:53:14发表:
我试过,把波特率设到128分频,还是不行。
另外,74HC595频率可以达到100M,所以对STM8,应该是够了! 
 

哥们你看手册了没,595的频率是根据使用的电压不同,频率就不同的。
我可没有看到频率能到 100M
2.JPG
 
还有你的时序一定要把握好。从你的这里看还是你的SPI设置有问题。
gang-366961 回答时间:2012-7-25 10:45:53

RE:STM8 SPI要延时

这些我都想过,如果说是595的速度不够,我把波特率改到很低了
时序应该是对的,否则也不能收到正确的数据。
SPI的设置不知哪里不对,
能不能给个例子!
cx032302 回答时间:2012-7-25 11:26:11

RE:STM8 SPI要延时

我用SPI做2.4G时,遇到过这种问题,时钟不能设置太快,降到2m以下可正常收发数据
gang-366961 回答时间:2012-7-25 19:08:03

RE:STM8 SPI要延时

经过研究发现:
while(SPI_SR & 0x02 == 0);
仿真器当作无效处理,不知为何,
也就是说,当在发送数据时,也在执行其它的动作。
本来是要发完了再执行的,这样就不好办了
gang-366961 回答时间:2012-7-25 21:02:40

RE:STM8 SPI要延时

再研究发现,SPI的标志位查询无效。
才会导致时序不对,
原因为:数据没有传送完毕,
程序已经往下执行了
不知道为会么标志位,会无效!
rat2003 回答时间:2012-11-16 21:40:36

RE:STM8 SPI要延时

试将
while(SPI_SR & 0x02 == 0); 修改为
while((SPI_SR & 0x02) == 0);
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版