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函数应该怎么编写?
这个还真没搞过,可以参考一下ST的移植步骤。 rt_hw_console_getchar函数就是针对你的MCU,用户需要提供的串口接受数据接口,和有没有这两个寄存器没关系。 这个真的没有使用过。 zhouyong77 发表于 2020-11-23 21:53
这个还真没搞过,可以参考一下ST的移植步骤。
我参考过,也是需要这两个标志位,没这两个标志位不知道怎么写 勇敢的大白菜 发表于 2020-11-24 09:31
这个真的没有使用过。
我看了华大论坛都没有相关的 guijial511 发表于 2020-11-24 08:50
rt_hw_console_getchar函数就是针对你的MCU,用户需要提供的串口接受数据接口,和有没有这两个寄存器没关系 ...
我知道,但是参考的都是有那两个标志位(都在同一个寄存器),没有的话写不出来,虽然我也知道这个函数是用来接收数据的 昨天看了华大论坛都没有可以参考的,有没有大佬可以做先驱者的 Joen23 发表于 2020-11-24 15:20
现在万事具备,只欠这个函数的具体实现方式了,无论怎么改,还是无法实现功能,头疼呀,周五老板就要问我项目的进度了,现在好慌 RXNE不就是RC吗?? martinhu 发表于 2020-11-25 09:22
RXNE不就是RC吗??
不一样的,有RXNE标志位的一定有还rc标志位,但是有些低级芯片只有rc没有rxne,我试过用rc代替rxne,还是不行 哈哈哈,你就说问题有点超前,论坛里商为大神都没见过 RTT也可以在低端的芯片上实现的,可以参考他们的做法,或者说变通实现,因为RTT确实串口这个不是标配。 萧洛毫 发表于 2020-11-25 14:49
RTT也可以在低端的芯片上实现的,可以参考他们的做法,或者说变通实现,因为RTT确实串口这个不是标配。 ...
rtt还是可以用的,就是想用rtt的finsh功能
页:
[1]