ตัวอย่างสมบูรณ์ — SPI bit-bang ทีละบิต
header_tester_ui.c
for (int8_t bit = 7; bit >= 0; bit--)
{
uint32_t tx_bit = ((tx[byte_index] >> (uint8_t)bit) & 0x01U);
Cy_GPIO_Write(HEADER_SPI_MOSI_PORT, HEADER_SPI_MOSI_PIN, tx_bit);
Cy_SysLib_DelayUs(5U);
Cy_GPIO_Write(HEADER_SPI_CLK_PORT, HEADER_SPI_CLK_PIN, 1U);
Cy_SysLib_DelayUs(5U);
if (Cy_GPIO_Read(HEADER_SPI_MISO_PORT, HEADER_SPI_MISO_PIN) != 0U) {
rx_byte |= (uint8_t)(1U << (uint8_t)bit);
}
Cy_GPIO_Write(HEADER_SPI_CLK_PORT, HEADER_SPI_CLK_PIN, 0U);
Cy_SysLib_DelayUs(5U);
}