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接收源代码