Browse Source

update

temp
tianjialong 2 years ago
parent
commit
30b9b7959e
  1. 6
      app/MDK-ARM/app.uvguix.29643
  2. 112
      usersrc/usermain.c

6
app/MDK-ARM/app.uvguix.29643

@ -1883,9 +1883,9 @@
</Doc> </Doc>
<Doc> <Doc>
<Name>..\..\usersrc\usermain.c</Name> <Name>..\..\usersrc\usermain.c</Name>
<ColumnNumber>20</ColumnNumber>
<TopLine>72</TopLine>
<CurrentLine>88</CurrentLine>
<ColumnNumber>19</ColumnNumber>
<TopLine>1</TopLine>
<CurrentLine>1</CurrentLine>
<Folding>1</Folding> <Folding>1</Folding>
<ContractedFolders></ContractedFolders> <ContractedFolders></ContractedFolders>
<PaneID>0</PaneID> <PaneID>0</PaneID>

112
usersrc/usermain.c

@ -18,21 +18,24 @@
#define Dummy_Byte 0xFF // 读取时MISO发送的数据,可以为任意数据 #define Dummy_Byte 0xFF // 读取时MISO发送的数据,可以为任意数据
#define delay_us 5
#define spi_delay_us 5
#define spi_table_type_size 50
// 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},
// };
typedef enum
{
SPI_SEL_TYPE = 0,
SPI_SCK_TYPE,
SPI_MOSI_TYPE,
SPI_MISO_TYPE,
SPI_TYPE_NUMBER,
} SPI_TYPE;
uint8_t table[SPI_TYPE_NUMBER][spi_table_type_size] = {
{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, 1, 1}, // sel
{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}, // sck
{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, 1, 1}, // mosi
{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, 0, 0}, // miso
};
void sys_delay_us(uint32_t us) void sys_delay_us(uint32_t us)
{ {
@ -45,83 +48,17 @@ void sys_delay_us(uint32_t us)
} }
HAL_TIM_Base_Stop(&htim7); 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)
void dotable()
{ {
uint8_t i;
uint8_t rxData = 0;
SPI_CS_0();
sys_delay_us(delay_us); // symbol tsw
SPI_SCK_0();
sys_delay_us(delay_us + 3);
for (i = 0; i < 8; i++)
for (size_t i = 0; i < spi_table_type_size; i++)
{ {
SPI_SCK_1();
sys_delay_us(1);
//
if (txData & 0x80)
{
SPI_MOSI_1();
}
else
{
SPI_MOSI_0();
}
txData <<= 1;
sys_delay_us(delay_us);
SPI_SCK_0();
sys_delay_us(delay_us);
//
// rxData <<= 1;
// if (SPI_READ_MISO())
// {
// rxData |= 0x01;
// }
sys_delay_us(delay_us);
}
for (i = 0; i < 8; i++)
{
SPI_SCK_1();
sys_delay_us(delay_us);
sys_delay_us(delay_us);
SPI_SCK_0();
sys_delay_us(delay_us);
sys_delay_us(delay_us);
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(spi_delay_us);
} }
SPI_SCK_1();
SPI_MOSI_1(); // 线
sys_delay_us(delay_us); // symbol thi
sys_delay_us(delay_us); // symbol tsw
SPI_CS_1();
return rxData;
}
uint8_t SPI_ReadByte(void)
{
return SPI_ReadWriteByte(Dummy_Byte);
}
void SPI_WriteByte(uint8_t txData)
{
(void)SPI_ReadWriteByte(txData);
} }
void user_main() void user_main()
@ -134,8 +71,7 @@ void user_main()
while (1) while (1)
{ {
// dotable();
SPI_ReadWriteByte(0x86);
dotable();
// HAL_UART_Transmit(&huart1, &temp, 1, 100); // HAL_UART_Transmit(&huart1, &temp, 1, 100);
HAL_Delay(10); HAL_Delay(10);
} }

Loading…
Cancel
Save