STM32-HAL库11-SPI通讯(F103C6T6做主机,F103C8T6做从机)

2023-12-16 22:44

本文主要是介绍STM32-HAL库11-SPI通讯(F103C6T6做主机,F103C8T6做从机),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

STM32-HAL库11-SPI通讯(F103C6T6做主机,F103C8T6做从机)

一、所用材料

STM32F103C6T6最小系统板-主机
STM32F103C8T6最小系统板-从机
串口调试助手X-COM

二、所学内容

主要为实现SPI的轮询发送功能,在DSP280049C初学(2)-关于DSP280049C与STM32F103C8T6之间的SPI通讯记录中,已经详细介绍了STM32F103C8T6作为从机接收相关的配置,所以本文主要讲解SPI作为主机发送相关的配置。

三、HAL库配置

第一步:三件套SYS,RCC以及时钟配置

在这里插入图片描述

第二步:SPI主机配置

在这里插入图片描述

四、MDK5配置

第一步:spi.h

申明一个发送两个uint16字节数据的发送函数

void SendTwoData (uint16_t txdata1,uint16_t txdata2);

第二步:spi.c

void SendTwoData (uint16_t txdata1,uint16_t txdata2)
{uint8_t data[6];data[0] = 1;data[5] = 255;data[1] = txdata1/256;data[2] = txdata1%256;data[3] = txdata2/256;data[4] = txdata2%256;	HAL_SPI_Transmit(&hspi1, data, 6, 10000);
}

第三步:main.c

在main函数的while循环中轮询发送两个固定数据。

  while (1){
//	 HAL_SPI_Transmit(&hspi1, tx_data, 4, 10000);SendTwoData (1234,4321);HAL_Delay(500);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

第四步:结果展示

硬件连线上SPI很简单,各自将CS,CLK,MISO,MOSI四根线一一对应这连接起来就可以了。
在从机STM32F103C8T6上,将发送的数据串口打印出来如下图所示。
在这里插入图片描述

五、附录

在这里将免费提供该文章对应的STM32F103C6T6的SPI发送源代码,和STM32F103C8T6的SPI接收源代码

  1. STM32F103C6T6的SPI发送源代码
  2. STM32F103C8T6的SPI接收源代码

这篇关于STM32-HAL库11-SPI通讯(F103C6T6做主机,F103C8T6做从机)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/502154

相关文章

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Java Websocket实例【服务端与客户端实现全双工通讯】

Java Websocket实例【服务端与客户端实现全双工通讯】 现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏 览器需要不断的向服务器发出请求,然而HTTP

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk)

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk) 文章目录 1、ESXI vs PVE,AIO主机系统二选一2、PVE网络配置(DNS,换源,网卡,https,概览)3、win11虚拟化配置(virtio,raw,qcow2)附,域名解析,rocky9.4,黑群晖 1、ESXI vs PVE,AIO主机系统二选