搜索

[技术问答] HC32L136开发板移植rt-thread nano的问题

[复制链接]
156|15
 楼主 | 2020-11-23 15:50 | 显示全部楼层 |阅读模式
本帖最后由 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函数应该怎么编写?



使用特权

评论回复
| 2020-11-23 21:53 | 显示全部楼层
这个还真没搞过,可以参考一下ST的移植步骤。

使用特权

评论回复
| 2020-11-24 08:50 | 显示全部楼层
rt_hw_console_getchar函数就是针对你的MCU,用户需要提供的串口接受数据接口,和有没有这两个寄存器没关系。

使用特权

评论回复
| 2020-11-24 09:31 | 显示全部楼层
这个真的没有使用过。

使用特权

评论回复
 楼主 | 2020-11-24 10:50 | 显示全部楼层
zhouyong77 发表于 2020-11-23 21:53
这个还真没搞过,可以参考一下ST的移植步骤。

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

使用特权

评论回复
 楼主 | 2020-11-24 10:51 | 显示全部楼层
勇敢的大白菜 发表于 2020-11-24 09:31
这个真的没有使用过。

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

使用特权

评论回复
 楼主 | 2020-11-24 10:52 | 显示全部楼层
guijial511 发表于 2020-11-24 08:50
rt_hw_console_getchar函数就是针对你的MCU,用户需要提供的串口接受数据接口,和有没有这两个寄存器没关系 ...

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

使用特权

评论回复
 楼主 | 2020-11-24 10:54 | 显示全部楼层
昨天看了华大论坛都没有可以参考的,有没有大佬可以做先驱者的

使用特权

评论回复
 楼主 | 2020-11-24 15:20 | 显示全部楼层
746475fbcb42645dbf.png

使用特权

评论回复
 楼主 | 2020-11-24 15:22 | 显示全部楼层

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

使用特权

评论回复
| 2020-11-25 09:22 | 显示全部楼层
RXNE不就是RC吗??

使用特权

评论回复
 楼主 | 2020-11-25 10:21 | 显示全部楼层
martinhu 发表于 2020-11-25 09:22
RXNE不就是RC吗??

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

使用特权

评论回复

评论

martinhu 2020-11-25 13:39 回复TA
哪里不一样? 
| 2020-11-25 10:24 | 显示全部楼层
哈哈哈,你就说问题有点超前,论坛里商为大神都没见过

使用特权

评论回复
| 2020-11-25 14:49 | 显示全部楼层
RTT也可以在低端的芯片上实现的,可以参考他们的做法,或者说变通实现,因为RTT确实串口这个不是标配。

使用特权

评论回复
 楼主 | 2020-11-25 17:05 | 显示全部楼层
萧洛毫 发表于 2020-11-25 14:49
RTT也可以在低端的芯片上实现的,可以参考他们的做法,或者说变通实现,因为RTT确实串口这个不是标配。 ...

rtt还是可以用的,就是想用rtt的finsh功能

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表