Joen23 发表于 2020-11-23 15:50

HC32L136开发板移植rt-thread nano的问题

本帖最后由 Joen23 于 2020-11-23 15:58 编辑

各位大佬,有使用过HC32L136开发板移植rt-thread nano的吗?移植rt-thread nano在rt-thread官网上有详细步骤,需要针对芯片自己编写几个函数,其中我看了rt_hw_console_getchar函数,例子里的rt_hw_console_getchar函数体是这样的char rt_hw_console_getchar(void)
{   
int ch = -1;   
    if (__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_RXNE) != RESET)
    {      
      ch = UartHandle.Instance->DR & 0xff;   
    }   
    else   
    {      
      if(__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_ORE) != RESET)      
      {            
            __HAL_UART_CLEAR_OREFLAG(&UartHandle);
      }      
      rt_thread_mdelay(10);
    }   
return ch;
}

需要使用到串口状态寄存器中UART_FLAG_RXNE和UART_FLAG_ORE这两个标志位,但是华大的hc32l136芯片比较低级,它的串口状态寄存器里没有这两个标志位。(说低级不是贬低华大芯片,华大比较高级的芯片如hc32f460的串口状态寄存器有这两个标志位),那移植rt-thread nano时这个rt_hw_console_getchar函数应该怎么编写?



zhouyong77 发表于 2020-11-23 21:53

这个还真没搞过,可以参考一下ST的移植步骤。

guijial511 发表于 2020-11-24 08:50

rt_hw_console_getchar函数就是针对你的MCU,用户需要提供的串口接受数据接口,和有没有这两个寄存器没关系。

勇敢的大白菜 发表于 2020-11-24 09:31

这个真的没有使用过。

Joen23 发表于 2020-11-24 10:50

zhouyong77 发表于 2020-11-23 21:53
这个还真没搞过,可以参考一下ST的移植步骤。

我参考过,也是需要这两个标志位,没这两个标志位不知道怎么写

Joen23 发表于 2020-11-24 10:51

勇敢的大白菜 发表于 2020-11-24 09:31
这个真的没有使用过。

我看了华大论坛都没有相关的

Joen23 发表于 2020-11-24 10:52

guijial511 发表于 2020-11-24 08:50
rt_hw_console_getchar函数就是针对你的MCU,用户需要提供的串口接受数据接口,和有没有这两个寄存器没关系 ...

我知道,但是参考的都是有那两个标志位(都在同一个寄存器),没有的话写不出来,虽然我也知道这个函数是用来接收数据的

Joen23 发表于 2020-11-24 10:54

昨天看了华大论坛都没有可以参考的,有没有大佬可以做先驱者的

Joen23 发表于 2020-11-24 15:20

Joen23 发表于 2020-11-24 15:22

Joen23 发表于 2020-11-24 15:20


现在万事具备,只欠这个函数的具体实现方式了,无论怎么改,还是无法实现功能,头疼呀,周五老板就要问我项目的进度了,现在好慌

martinhu 发表于 2020-11-25 09:22

RXNE不就是RC吗??

Joen23 发表于 2020-11-25 10:21

martinhu 发表于 2020-11-25 09:22
RXNE不就是RC吗??

不一样的,有RXNE标志位的一定有还rc标志位,但是有些低级芯片只有rc没有rxne,我试过用rc代替rxne,还是不行

豌豆爹 发表于 2020-11-25 10:24

哈哈哈,你就说问题有点超前,论坛里商为大神都没见过

萧洛毫 发表于 2020-11-25 14:49

RTT也可以在低端的芯片上实现的,可以参考他们的做法,或者说变通实现,因为RTT确实串口这个不是标配。

Joen23 发表于 2020-11-25 17:05

萧洛毫 发表于 2020-11-25 14:49
RTT也可以在低端的芯片上实现的,可以参考他们的做法,或者说变通实现,因为RTT确实串口这个不是标配。 ...

rtt还是可以用的,就是想用rtt的finsh功能
页: [1]
查看完整版本: HC32L136开发板移植rt-thread nano的问题