OpenHarmony串口UART使用挂在read,求指点
龙猫哦豁
发布于 2022-7-16 11:40
浏览
0收藏
大神们,刚接触OpenHarmony,用的海思3861的板子,碰到一个问题,纠结很久没搞定,求指点。
hi_uart_write使用输出正常,但程序挂在了hi_uart_read,不再往下执行了
相关代码如下:
/* uart0 调试串口功能 /
hi_io_set_func(HI_IO_NAME_GPIO_3, HI_IO_FUNC_GPIO_3_UART0_TXD); / uart0 tx /
hi_io_set_func(HI_IO_NAME_GPIO_4, HI_IO_FUNC_GPIO_4_UART0_RXD); / uart0 rx */
hi_u32 ret;
hi_uart_attribute uart_attr = {
.baud_rate = 115200, /* baud_rate: 115200 */
.data_bits = 8, /* data_bits: 8bits */
.stop_bits = 1,
.parity = 0,
};
ret = hi_uart_init(0, &uart_attr, HI_NULL);
if(ret != HI_ERR_SUCCESS)
{
printf("Failed to init uart!\n");
}
else
{
printf("Completed to init uart!\n");
}
unsigned char uart_buff[72] = {0};
unsigned char *uart_buff_ptr = uart_buff;
unsigned char index = 0;
unsigned char len = 0;
char* tx_str = "tx_str";
while(1)
{
osDelay(100);//延时100ms
hi_uart_write(0,tx_str,6);//发送测试ok_wh20220716
len = hi_uart_read(0, uart_buff_ptr, 72);//read导致挂了,待查wh_20220715
//len = hi_uart_read(0, uart_buff, 72);//也不行wh_20220715
printf("len = %d!\n",len);//执行不到
}
赞
收藏
回复
相关推荐
使用hi_uart_read_timeout()函数可以解决大部分问题,设置等待读取时间,没读取到会退出。不过bug就是会遇到读取数据为空。我也头疼这个问题