From dd648d698116f2b30a50b4837f95d003c4b4d9c9 Mon Sep 17 00:00:00 2001 From: tianjialong Date: Sun, 12 Mar 2023 15:21:42 +0800 Subject: [PATCH] update --- app/MDK-ARM/app.uvguix.29643 | 4 +-- usersrc/usermain.c | 58 ++++++++++++++++++++++++++++++++------------ 2 files changed, 45 insertions(+), 17 deletions(-) diff --git a/app/MDK-ARM/app.uvguix.29643 b/app/MDK-ARM/app.uvguix.29643 index 49e1568..4d827ba 100644 --- a/app/MDK-ARM/app.uvguix.29643 +++ b/app/MDK-ARM/app.uvguix.29643 @@ -1883,9 +1883,9 @@ ..\..\usersrc\usermain.c - 34 + 20 72 - 95 + 88 1 0 diff --git a/usersrc/usermain.c b/usersrc/usermain.c index 3a9c41e..c34bb99 100644 --- a/usersrc/usermain.c +++ b/usersrc/usermain.c @@ -18,6 +18,22 @@ #define Dummy_Byte 0xFF // 读取时MISO发送的数据,可以为任意数据 +#define delay_us 5 + +// 50us +// +// CS 11000 +// SCK +// MOSI +// +// + +// uint8_t table[3][52] = { +// {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, +// {1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, +// {1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, +// }; + void sys_delay_us(uint32_t us) { uint16_t counter = 0; @@ -29,6 +45,17 @@ void sys_delay_us(uint32_t us) } HAL_TIM_Base_Stop(&htim7); } +// void dotable() +// { +// for (size_t i = 0; i < 52; i++) +// { + +// table[0][i] ? SPI_CS_1() : SPI_CS_0(); +// table[1][i] ? SPI_SCK_1() : SPI_SCK_0(); +// table[2][i] ? SPI_MOSI_1() : SPI_MOSI_0(); +// sys_delay_us(5); +// } +// } // SPI可以同时读取和写入数据,因此一个函数即可满足要求 uint8_t SPI_ReadWriteByte(uint8_t txData) @@ -37,9 +64,9 @@ uint8_t SPI_ReadWriteByte(uint8_t txData) uint8_t rxData = 0; SPI_CS_0(); - sys_delay_us(1); // symbol tsw + sys_delay_us(delay_us); // symbol tsw SPI_SCK_0(); - sys_delay_us(1); + sys_delay_us(delay_us + 3); for (i = 0; i < 8; i++) { @@ -55,33 +82,33 @@ uint8_t SPI_ReadWriteByte(uint8_t txData) SPI_MOSI_0(); } txData <<= 1; - sys_delay_us(1); + sys_delay_us(delay_us); SPI_SCK_0(); - sys_delay_us(1); + sys_delay_us(delay_us); // 数据接收 // rxData <<= 1; // if (SPI_READ_MISO()) // { // rxData |= 0x01; // } - sys_delay_us(1); + sys_delay_us(delay_us); } for (i = 0; i < 8; i++) { SPI_SCK_1(); - sys_delay_us(1); - sys_delay_us(1); + sys_delay_us(delay_us); + sys_delay_us(delay_us); SPI_SCK_0(); - sys_delay_us(1); - sys_delay_us(1); + sys_delay_us(delay_us); + sys_delay_us(delay_us); } SPI_SCK_1(); - SPI_MOSI_1(); // 数据线空闲高电平 - sys_delay_us(1); // symbol thi - sys_delay_us(1); // symbol tsw + SPI_MOSI_1(); // 数据线空闲高电平 + sys_delay_us(delay_us); // symbol thi + sys_delay_us(delay_us); // symbol tsw SPI_CS_1(); return rxData; @@ -107,8 +134,9 @@ void user_main() while (1) { - temp = SPI_ReadWriteByte(0x86); - HAL_UART_Transmit(&huart1, &temp, 1, 100); - HAL_Delay(100); + // dotable(); + SPI_ReadWriteByte(0x86); + // HAL_UART_Transmit(&huart1, &temp, 1, 100); + HAL_Delay(10); } }