模拟串口-延时法

//模拟串口 2400  416
//模拟串口 4800  208
//模拟串口 9600  104
//模拟串口 19200  52
#define mt 208
void serial_write(uint32_t pin_number, uint8_t data)
{
    static uint8_t flag = 0;
    uint8_t i;

    if(flag == 0)
    {
        GPIO_SetMode(pin_number, GPIO_MODE_OUTPUT, NRF_GPIO_PIN_PULLUP);
        gpio_write(pin_number, 1); //上电初始化IO
        Delay_Nms(5);
        flag = 1;
    }

    Delay_Nms(1);

    gpio_write(pin_number, 0); //发送起始位
    Delay_Nus(mt);

    //发送8位数据位
    for(i = 0; i < 8; i++)
    {
        if((data >> i & 0x01) == 0)gpio_write(pin_number, 0);
        else gpio_write(pin_number, 1);

        Delay_Nus(mt);
    }

    //发送校验位(无)
    gpio_write(pin_number, 1); //发送结束位

    Delay_Nus(mt);
}

 

posted @ 2021-03-04 10:11  A9_Maker  阅读(136)  评论(0)    收藏  举报