STM32F103/302 SPI3 接口使用例程
最近在用STM MCU 的SPI3,把一些使用时的注意点给大家记录一下,该注意的几点都注意了:
1,开GPIO时种
2,开SPI3时钟
3,GPIO引脚功能设定
4,如果有引脚复用的或与JTAG口有共用的引脚要对GPIO进行remap等
代码如下:
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
// NSS
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// SPI
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
}
void SPI3_Configuration(void)
{
SPI_InitTypeDef SPI_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);
RCC_PCLK1Config(RCC_HCLK_Div2); // 36M
SPI_I2S_DeInit(SPI3);
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Hard; // SPI_NSS_Soft
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI3,&SPI_InitStructure);
SPI_SSOutputCmd(SPI3, ENABLE);
SPI_Cmd(SPI3, ENABLE);
}
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
SPI3_Configuration();
delay_init(72);
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_15);
SPI_I2S_SendData(SPI3,0xAA55);
while( SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY));
SPI_I2S_ReceiveData(SPI3);
GPIO_SetBits(GPIOA,GPIO_Pin_15);
delay_ms(1);
}
}
//仿真观看SPI3寄存器状态 -- 正常
成功输出信号波形
STM32F103/302 SPI3 接口使用例程相关推荐
- PB proUSB门锁接口函数例程
下载地址 因为程序在PB9中调用,但官方只提供了VB,DELPHI的代码实例,自己费了点心,写了个PB9调用的代码,本程序参照官方提供的Delphi和VB示例,如果你懒得自己动手,,请支持一下.
- Labelmx条码软件接口版调用例程
<Label mx通用条码标签设计系统>是一款简单易用的专业条码标签设计系统.集画图设计.条码生成.标签制作.批量打印于一体. 恒佑科技为满足其它管理软件.进销存等软件调用label mx ...
- stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解)
stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解) 首先看看效果吧 手机端发送一个数据在OLED屏幕上显示 其实蓝牙通信就是个蓝牙转串口的过程,手机 ...
- ESP32 SPI 接口的应用
总体介绍 1. ESP32 共有 4 个 SPI 控制器 SPI0.SPI1.SPI2.SPI3,用于连接支持 SPI 协议的设备. SPI0 控制器作为 cache 访问外部存储单元接口使用; SP ...
- Aurora8B10B IP使用 -04- IP例程应用实例
前言 本文主要介绍了关于Aurora8B10B IP官方提供的模板工程的使用,并进行了简要的仿真查看测试结果,确保仿真传输的正确性. 示例设计架构 示例设计 每个 Aurora 8B/10B 内核都包 ...
- Henry的VB.NET之旅(十)—何时用接口
?????? Henry的VB.NET之旅(十)-何时用接口 ??????????????????????????????????????? 韩睿? 大李没告诉我接口与抽象类的区别,什么时候用接口,什 ...
- 【Esp32】Esp32+sx1268 Spi接口驱动SX1268模块
[Esp32]Spi接口驱动SX1268模块 0. 实验结果 1.原理解析 2.硬件接线 3. SX1268 模块的 SPI 时序分析 4. 基于 ESP32 实现函数封装 4.1 读寄存器 4.2 ...
- LED显示屏二次开发接口的设计方案
引言 在LED 显示屏工程应用中,有单块显示屏项目,但更多的是多块显示屏项目.对于单块显示屏,直接使用厂商配置的控制软件就满足要求了:但对于多块显示屏,尤其是系统集成项目,厂商配置的控制软件就很难满足 ...
- 基于STM32和W5500的Modbus TCP通讯
在最近的一个项目中需要实现Modbus TCP通讯,而选用的硬件平台则是STM32F103和W5500,软件平台则选用IAR EWAR6.4来实现. 1.移植前的准备工作 为了实现Modbus ...
最新文章
- 华为云AI开发部总经理罗华霖:华为人工智能的实践与创新
- 记录猫眼电影的自定义字体反爬
- 信息安全管理体系 ISMS
- 微服务基础架构的5个关键问题
- 互联网1分钟 | 0110 腾讯联手拳头游戏成立腾竞体育;百度智能云发布中国首款智能边缘计算产品BIE...
- 突破模糊定性分析,批归一化和权重衰减的球面优化机制
- 如何安装redmine插件
- teamview修改id
- POJ 1952 BUY LOW, BUY LOWER
- python百度人脸识别_python 与 百度人脸识别api
- 001-电脑操作规范-2019年03月.doc
- Win10 Build 18237发布:登录屏幕启用毛玻璃特效
- 易基因|干货:手把手教你做RNA m5C甲基化测序分析(RNA-BS)
- 电子学会-全国青少年编程等级考试真题Scratch一级(2019年3月)
- 找回win10自带的windows照片查看器
- Speedoffice(excel)如何利用SUMIF函数求和
- 51单片机点阵屏实现俄罗斯方块
- 沈阳服务器主板维修,沈阳铁西区附近电脑主板维修
- 2017二本各大学计算机分数线,2017年二本院校排名及分数线
- 1的阶乘到100的阶乘之和