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 时序 和数据传输



posted @ 2022-11-15 20:38  王阳开  阅读(224)  评论(0编辑  收藏  举报