专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
嵌入式
STM32有关SPI接口的困惑
2019-07-16 09:31
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
嵌入式Linux
7364
2
1715
STM32
的SPI接口SPI- gt;DR寄存器读不到数据,求各位知道的告诉一下,小弟不胜感激
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
笔画张
1楼-- · 2019-07-16 10:35
能不能形容的准确定啊
加载中...
德国蟑螂
2楼-- · 2019-07-16 16:10
笔画张 发表于 2014-4-14 17:13
能不能形容的准确定啊
//串口发送口和接收口的初始化,选中并进行模式选择
void GPIO_LED_init()
{
GPIO_InitTypeDef GPIO_config;
GPIO_config.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9; //引脚选择,选择8号和9号引脚
GPIO_config.GPIO_Speed=GPIO_Speed_50MHz; //设置选中引脚速率
GPIO_config.GPIO_Mode=GPIO_Mode_Out_PP; //设置选中引脚状态——推勉输出
GPIO_Init(GPIOD,&GPIO_config); //初始化设置的引脚
}
/*******SPI接收数据********/
unsigned char SPI1_SendByte(unsigned char byte)
{
//while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
SPI_I2S_ClearFlag(SPI1,SPI_I2S_FLAG_RXNE); //清标志位
SPI_I2S_ClearFlag(SPI1,SPI_I2S_FLAG_TXE); //清标志位
SPI_I2S_SendData(SPI1,byte);
// while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)==RESET);
while((SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE))==RESET); //等待发送完成
while((SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE))==RESET);//等待接收完成
return SPI_I2S_ReceiveData(SPI1);
}
void LED_init()
{
RCC_init();
GPIO_LED_init();
}
/***********主函数************/
int main(void)
{
int data;
LED_init();
SPI_test();
data=SPI1_SendByte(0x5a);
if(data==0x5a)
{
while(1)
{
GPIO_SetBits(GPIOD,GPIO_Pin_8|GPIO_Pin_9);
}
}
}
这是我程序的部分
在这个程序中,最后data总是得不到要发送的数据
也就是0x5a,一直都是0,你帮我看看问题在哪,非常感谢啊
加载中...
一周热门
更多
>
相关问题
ARM 汇编,怎么这个export这么捣乱啊?
1 个回答
【ALIENTEK 战舰STM32开发板例程系列连载+教学】第五十八章 UCOSII实验1-任务调度
38 个回答
什么情况下会导致 自恢复保险丝 阻值出现异常?
1 个回答
【提问题,赢课程】反激开关电源设计、变压器设计及调试课程问题搜集
2 个回答
nand启动文件大于4KB,怎么解决
1 个回答
学习ARM选ARM几比较好呢?
2 个回答
这两个板到底选谁?【我决不是发广告的】
1 个回答
关于以太网IP地址如何修改?
1 个回答
相关文章
嵌入式编译生成的HEX文件和BIN文件内容详解
0个评论
嵌入式领域,FPGA的串口通信接口设计,VHDL编程,altera平台
0个评论
IMX6UL裸机实现C语言按键输入实验
0个评论
如何编写一个工程文件夹下通用的Makefile
0个评论
Linux设备树专有名词及语法规则详解(下)
0个评论
嵌入式开发之GNU的汇编语法介绍
0个评论
嵌入式开发之Putty软件的安装和使用
0个评论
嵌入式开发之SecureCRT 软件安装和使用
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
嵌入式
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
//串口发送口和接收口的初始化,选中并进行模式选择
void GPIO_LED_init()
{
GPIO_InitTypeDef GPIO_config;
GPIO_config.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9; //引脚选择,选择8号和9号引脚
GPIO_config.GPIO_Speed=GPIO_Speed_50MHz; //设置选中引脚速率
GPIO_config.GPIO_Mode=GPIO_Mode_Out_PP; //设置选中引脚状态——推勉输出
GPIO_Init(GPIOD,&GPIO_config); //初始化设置的引脚
}
/*******SPI接收数据********/
unsigned char SPI1_SendByte(unsigned char byte)
{
//while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
SPI_I2S_ClearFlag(SPI1,SPI_I2S_FLAG_RXNE); //清标志位
SPI_I2S_ClearFlag(SPI1,SPI_I2S_FLAG_TXE); //清标志位
SPI_I2S_SendData(SPI1,byte);
// while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)==RESET);
while((SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE))==RESET); //等待发送完成
while((SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE))==RESET);//等待接收完成
return SPI_I2S_ReceiveData(SPI1);
}
void LED_init()
{
RCC_init();
GPIO_LED_init();
}
/***********主函数************/
int main(void)
{
int data;
LED_init();
SPI_test();
data=SPI1_SendByte(0x5a);
if(data==0x5a)
{
while(1)
{
GPIO_SetBits(GPIOD,GPIO_Pin_8|GPIO_Pin_9);
}
}
}
这是我程序的部分
在这个程序中,最后data总是得不到要发送的数据
也就是0x5a,一直都是0,你帮我看看问题在哪,非常感谢啊
一周热门 更多>