diff --git a/Libraries/SoftSPI_HAL_Lib b/Libraries/SoftSPI_HAL_Lib index 645e976..e6d62c9 160000 --- a/Libraries/SoftSPI_HAL_Lib +++ b/Libraries/SoftSPI_HAL_Lib @@ -1 +1 @@ -Subproject commit 645e976d42783ba608ec5c14cdc3cfbf16427a04 +Subproject commit e6d62c90e63c2e973893a098dc98ec67b4c5fd99 diff --git a/Project/MasterNode.uvprojx b/Project/MasterNode.uvprojx index 4c60cb0..16216e5 100644 --- a/Project/MasterNode.uvprojx +++ b/Project/MasterNode.uvprojx @@ -313,7 +313,7 @@ 1 - 7 + 1 0 0 1 @@ -339,7 +339,7 @@ USE_HAL_DRIVER, STM32F103x6 - ..\Core;..\Libraries\HAL_Lib\Inc;..\User\Main;..\System\sys;..\System\systick;..\System\uart;..\Hardware\led + ..\Core;..\Libraries\HAL_Lib\Inc;..\Libraries\SoftSPI_HAL_Lib;..\User\Main;..\System\sys;..\System\systick;..\System\uart;..\Hardware\led @@ -635,6 +635,21 @@ + + SoftSPI_HAL_Lib + + + softspi_conf.h + 5 + ..\Libraries\SoftSPI_HAL_Lib\softspi_conf.h + + + softspi.c + 1 + ..\Libraries\SoftSPI_HAL_Lib\softspi.c + + + System diff --git a/User/Main/main.c b/User/Main/main.c index 214dbd0..bf8274a 100644 --- a/User/Main/main.c +++ b/User/Main/main.c @@ -1,20 +1,25 @@ /** * @file main.c * @author Myth - * @version 0.1 - * @date 2021.10.11 + * @version 0.2 + * @date 2021.10.12 * @brief 工程主函数文件 * @details 初始化及主循环 - * @note 工程模版实现的功能:串口回显,回显时 PC13 上的 LED 闪烁 + * @note 此版本实现功能: + * 串口回显,回显时 PC13 上的 LED 闪烁 + * 软件 SPI */ #include "sys.h" #include "systick.h" #include "uart.h" +#include "softspi.h" + #include "led.h" void Echo(uint8_t byte); +void Test_SoftSPI_Init(void); int main(void) { @@ -30,9 +35,14 @@ int main(void) UART_BindReceiveHandle(COM1, Echo); //绑定 COM1 串口接收中断至 Echo 函数 + Test_SoftSPI_Init(); //软件 SPI 测试初始化 + uint8_t write[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; + uint8_t read[10]; while (1) { //程序主循环 + SoftSPI_WriteReadBuff(write, read, 10); + Delay_us(100); } return 1; @@ -47,3 +57,26 @@ void Echo(uint8_t byte) LED1_Slow_Toggle; UART_SendChar(COM1, byte); } + +/** + * @brief 软件 SPI 测试初始化 + */ +void Test_SoftSPI_Init(void) +{ + SoftSPI_InitTypeDef SoftSPI_Initure; + + SoftSPI_Initure.SCLK_GPIO = GPIOB; + SoftSPI_Initure.SCLK_Pin = GPIO_PIN_10; + SoftSPI_Initure.MOSI_GPIO = GPIOA; + SoftSPI_Initure.MOSI_Pin = GPIO_PIN_5; + SoftSPI_Initure.MISO_GPIO = GPIOA; + SoftSPI_Initure.MISO_Pin = GPIO_PIN_4; + SoftSPI_Initure.SS_GPIO = GPIOA; + SoftSPI_Initure.SS_Pin = GPIO_PIN_6; + SoftSPI_Initure.Delay_Time = 10; + + if (SoftSPI_Init(&SoftSPI_Initure) != HAL_OK) //初始化软件 SPI + { + Error_Handler(__FILE__, __LINE__); //错误处理 + } +}