OpenEdv-开源电子网

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

SPI

[复制链接]

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-12-14
在线时间
2 小时
发表于 2013-1-24 23:27:28 | 显示全部楼层 |阅读模式
写了个SPI的程序,用j link调试的时候发现spi2 DR那个寄存器写不进去值,就是赋了值,debug的检测窗口里还是0。这什么情况?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-12-14
在线时间
2 小时
 楼主| 发表于 2013-1-24 23:34:43 | 显示全部楼层
应该不是板子的问题,我用了好几块都是这样
回复 支持 反对

使用道具 举报

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-12-14
在线时间
2 小时
 楼主| 发表于 2013-1-24 23:35:02 | 显示全部楼层
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "stm32f10x_spi.h"
//2012.12.5开始 12.10 stm32正常
void SPI2init()
{
RCC->APB2ENR|=0x00000028;//使能时钟GPIOB,D时钟
RCC->APB1ENR|=1<<14;//使能SPI2口时钟

GPIOB->CRH&=0x000FFFFF; //PB13,14,15初始给高电平
GPIOB->CRH|=0xBBB00000; //
GPIOB->ODR|=0x0000E000;//初始为高电平

GPIOB->CRH&=0x000FFFFF; //PB13,14,15复用 50HZ 推挽输出
GPIOB->CRH|=0xBBB00000;

SPI2->CR1=0x0000;//全部清零
SPI2->CR1|=0x033E;//选择STM32为主设备,256分频,从第1个跳变开始采样,SCK空闲时为高电平,nss软件管理,内部引脚置位 16bit读写
SPI2->CR1|=0x0040;//SPI使能
}

void SPI1init()
{
RCC->APB2ENR|=0x00001004;//使能SPI1时钟,GPIOA时钟

GPIOA->CRL&=0x000fffff;
GPIOA->CRL|=0xBBB000000;

SPI1->CR1=0x0000;//全部清零
SPI1->CR1|=1<<9;//nss软件管理
//SPI1->CR1|=1<<11;//16bit读写
//SPI1->CR1|=1;//捕获第二个
SPI1->CR1|=1<<6;//使能
}
u8 SPI2_ReadWriteByte(u8 TxData)
{
u8 retry=0;
while((SPI2->SR&1<<1)==0)//等待发送区空
{
retry++;
if(retry>200)return 0;
}
SPI2->DR=TxData; //发送一个byte
retry=0;
while((SPI2->SR&1<<0)==0) //等待接收完一个byte
{
retry++;
if(retry>200)return 0;
}
return SPI2->DR; //返回收到的数据
}
u8 SPI1_ReadWriteByte(u8 TxData)
{
u8 retry=0;
while((SPI1->SR&1<<1)==0)//等待发送区空
{
retry++;
if(retry>200)return 0;
}
SPI1->DR=TxData; //发送一个byte
retry=0;
while((SPI1->SR&1<<0)==0) //等待接收完一个byte
{
retry++;
if(retry>200)return 0;
}
return SPI1->DR; //返回收到的数据
}
int main(void)
{
u8 test=0;
   Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
SPI2init();
SPI1init();
while(1)
{
SPI2_ReadWriteByte(0x00ff);
test=SPI1_ReadWriteByte(0x0000);
delay_ms(10);
}
}
回复 支持 反对

使用道具 举报

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-12-14
在线时间
2 小时
 楼主| 发表于 2013-1-24 23:35:26 | 显示全部楼层
SPI1和SPI2是直接相连的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-12-14
在线时间
2 小时
 楼主| 发表于 2013-1-25 14:11:28 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
想问问你们啊,我只是补充了一下。
回复 支持 反对

使用道具 举报

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-12-14
在线时间
2 小时
 楼主| 发表于 2013-1-25 17:20:24 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
用spi的例子程序都跑不出来
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-25 19:05:00 | 显示全部楼层
这个SPI DR寄存器,有时候确实看不到值,通过其他办法解决吧!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-12-14
在线时间
2 小时
 楼主| 发表于 2013-1-25 20:36:31 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
那个给的例子程序直接下载到开发板里,LCD也跑不出来效果。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-25 21:26:37 | 显示全部楼层
回复【9楼】qmpzzpmq:
---------------------------------
不是吧,我们的spi实验,都是写一串字符到SPI FLASH,然后读出来,这样子的.
效果肯定可以看出的了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-12-14
在线时间
2 小时
 楼主| 发表于 2013-1-25 23:33:31 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
仅仅把屏幕点亮了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-26 01:14:04 | 显示全部楼层
旺旺联系下我们
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 02:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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