gpio模拟串口
gpio模拟串口
/* 8n1 */
int uart_gpio_send_byte(unsigned char byte)
{
int bit_delay = 1;
unsigneed char i;
gpio_set_value(io, 0); /* start bit*/
uart_gpio_delay(bit_delay);
/* data bit */
for (i = 0; i < 8; i++) {
if (byte & 0x01)
gpio_set_value(io, 1);
else
gpio_set_value(io, 0);
uart_gpio_delay(bit_delay);
byte >>= 1;
}
gpio_set_value(io, 1);
uart_gpio_delay(bit_delay); /* stop bit */
uart_gpio_delay(bit_delay); /* idle bit */
uart_gpio_delay(bit_delay); /* more idle bit, for nothing */
return 0;
}
reference:
串口UART 时序 和数据传输