Browse Source

update

temp
tianjialong 2 years ago
parent
commit
2a588a4f34
  1. 19
      usersrc/usermain.c

19
usersrc/usermain.c

@ -4,6 +4,7 @@
#include <string.h> #include <string.h>
#include "main.h" #include "main.h"
#include "usart.h" #include "usart.h"
#include "tim.h"
#define READ_CMD 0x80 #define READ_CMD 0x80
#define SPI_TIMEOUT_VALUE 1000 #define SPI_TIMEOUT_VALUE 1000
@ -17,6 +18,16 @@
#define Dummy_Byte 0xFF // 读取时MISO发送的数据,可以为任意数据 #define Dummy_Byte 0xFF // 读取时MISO发送的数据,可以为任意数据
void sys_sys_delay_us(uint32_t us) {
uint16_t counter = 0;
__HAL_TIM_SET_COUNTER(&htim7, 0);
HAL_TIM_Base_Start(&htim7);
while (counter < us) {
counter = __HAL_TIM_GET_COUNTER(&htim7);
}
HAL_TIM_Base_Stop(&htim7);
}
// SPI可以同时读取和写入数据 // SPI可以同时读取和写入数据
uint8_t SPI_ReadWriteByte(uint8_t txData) uint8_t SPI_ReadWriteByte(uint8_t txData)
{ {
@ -26,7 +37,7 @@ uint8_t SPI_ReadWriteByte(uint8_t txData)
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
SPI_SCK_0(); SPI_SCK_0();
delay_us(1);
sys_delay_us(1);
// //
if (txData & 0x80) if (txData & 0x80)
{ {
@ -37,17 +48,17 @@ uint8_t SPI_ReadWriteByte(uint8_t txData)
SPI_MOSI_0(); SPI_MOSI_0();
} }
txData <<= 1; txData <<= 1;
delay_us(1);
sys_delay_us(1);
SPI_SCK_1(); SPI_SCK_1();
delay_us(1);
sys_delay_us(1);
// //
rxData <<= 1; rxData <<= 1;
if (SPI_READ_MISO()) if (SPI_READ_MISO())
{ {
rxData |= 0x01; rxData |= 0x01;
} }
delay_us(1);
sys_delay_us(1);
} }
SPI_SCK_0(); SPI_SCK_0();

Loading…
Cancel
Save