c语言-结构体

    struct {
        uint32_t baud_rate;
        uint8_t code;
    } valid_speed_map[] = {
        { 9600, 0xB0 },
        { 19200, 0xB1 },
        { 38400, 0xB2 },
        { 57600, 0xB3 },
        { /*115200, 115607, 114942, 125000, 113636*/119047, 0xB4 } /* 虽然有响应,但是实际上不能通信 */
    };

    for (int i = 1; i < 5 - 1; ++i) {
        printf("%x  %d\n", valid_speed_map[i].code,valid_speed_map[i].baud_rate);
    }

运行结果:

uint8_t resp_buffer[256];
static int
renesas_send_recv_cmd(uint8_t cmd, const uint8_t *p, uint16_t p_len, uint16_t r_len, uint8_t *buf, uint32_t timeout)
{
        renesas_rx_count = 0;
        
        while((USART6->SR & USART_SR_TXE) != USART_SR_TXE) { }
        USART6->DR = cmd;
        
        for(uint32_t i = 0; i < p_len; ++i) {
            while((USART6->SR & USART_SR_TXE) != USART_SR_TXE) { }
            USART6->DR = p[i];
        }
        
        while((USART6->SR & USART_SR_TC) != USART_SR_TC) { }//传送已完成就跳过
        
        if(r_len) {
            ms1Sleep = 0;
            while(renesas_rx_count < r_len && ms1Sleep <= timeout) { }
            if(renesas_rx_count < r_len) {
                return -1;
            }
            
            memcpy(buf, Rec_U1, r_len);
        }
        
        return 0;
}

    renesas_send_recv_cmd(UNLOCK/*0xF5*/, (uint8_t[]) { 0xDF, 0xFF, 0x0F, 0x07, 
        0xBC, 0xDE, 0xAD, 0xDD, 0xD4, 0x81, 0x89 }, 3 + 1 + 7, 0, NULL, 0);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值