4518|1

36

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于STM32的SPI通信问题 [复制链接]

这几天在做SPI接口的调试工作,最小系统已经做好了,确定可以点亮LED灯。现在调试SPI接口,但SPI引脚并没有连出任何引线,我只是想通过编程,再用示波器测量SPI1的SCK引脚,看是否有时钟输出。


下面是我的主函数:


int main(void)
{

/*以下设置时钟*/
RCC_CFGR->SW=2; //设置时钟来源为高速外部时钟HSE 12MHz
RCC_CFGR->MCO=6; //设置RCC_CFGR的输出时钟位MCO
RCC_CR=0x00010000; //设置高速外部时钟HSE为开启
 RCC_APB2ENR=0x00001015; //设置RCC_APB2ENR寄存器,开启SPI1,GPIOA,GPIOC和AFIO时钟



/**以下设置GPIO*/
GPIOA_CRL=0xBBBB4444; //设置PA4、PA5、PA6、PA7为推挽式复用功能,最大速度为50MHz
GPIOC_CRH=0x33344444; //设置P13、P14、P15为推挽式输出


/*以下设置SPI1*/
// SPI1_CR1->SPE=0; //先禁用SPI1
SPI1_CR1|=0<<0; //时钟相位设置为数据采集从第一个时钟沿开始
SPI1_CR1|=1<<1; //时钟极性为:空闲状态进,SCK保持高电平
SPI1_CR1|=1<<2; //SPI1设置为主设备
SPI1_CR1|=1<<3; //波特率为Fpclk/4
SPI1_CR1|=0<<7; //帧格式:先发送MSB
SPI1_CR1|=1<<8; //NSS为高电平
SPI1_CR1|=1<<9; //开启软件从设备管理
SPI1_CR1|=0<<10; //全双工
SPI1_CR1|=0<<11; //8位数据帧
// SPI1_CR2=0x0004; //设置SPI1_CR2寄存器开启SSOE,使能NSS输出
SPI1_CR1|=1<<6; //开启SPI1

 

/*点亮LED灯*/
LightLED();

/*从SPI1口发送数据*/

while(1){
spi_send(0xff);
}
}


编译成功后,下载到板子上,LED亮。但用示波器测MOSI或者SCK引脚,都没有波形输出,请各位帮我看看,谢谢!

此帖出自stm32/stm8论坛

最新回复

spi_send(0xff);什么意思啊???求解!!  详情 回复 发表于 2012-6-13 15:20
点赞 关注
 

回复
举报

102

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

回复 楼主 shiyi_jiang 的帖子

spi_send(0xff);什么意思啊???求解!!
此帖出自stm32/stm8论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表