首页 > 解决方案 > 如何在 esp uart 函数中写入十六进制值?

问题描述

#define RESET 0x00
#define XXXX 0xFE

unsigned short somefunction(unsigned char RW, unsigned char address, unsigned short val)
{
    unsigned short output;
    address |= RW << 7;

    unsigned char host_chksum = address;
    if (!RW) //If it is a register write operation
    {
        unsigned short chksum_short = (val >> 8) + (val & 0xFF) + address;
        host_chksum = chksum_short & 0xFF;
    }

    uart_write_bytes(UART_NUM, (const char*)XXXX, strlen(0xFE));
    uart_write_bytes(UART_NUM, (const char*)address, strlen(address));
    return;
}
int app_main()
{
    somefunction(1, 0x48, 0xFFFF);
    return 0;
}

在您可以看到的代码中,我将 传递hexadecimal parameter给 somefunction as unsgined char。现在这个参数我必须写入 esp uart 函数 int ,uart_write_bytes(uart_port_tuart_num, const char *src, size_t size)它采用second parameteras const char*so i type castedparameter但是当它尝试写入 uart 时,它的不工作系统会崩溃。

我应该如何输入这个值,以便 esp uart 函数起作用?

标签: cuartesp-idf

解决方案


推荐阅读