嵌入式技术论坛
直播中

而无返还

8年用户 1251经验值
擅长:光电显示
私信 关注
[问答]

在rtconfig.h里包含其他头文件造成报错如何解决呢

因为串口6既要做调试口,输出ulog日志,又要连dtu,总是改代码麻烦,想用一个宏定义控制开关finsh控制台。

在rtconfig.h里包含了这个头文件

1.jpg

头文件里有一个宏定义

#define UART6_IS_FINSH

1.jpg

这样就控制是否使用控制台了。可是这样写各种报错。难道我每次只能通过env修改了吗?

谢谢

回帖(6)

张超

2022-10-13 10:27:47
这样用应该也是可以的,我试了一下没有报错。
应该是你的def.h里的内容引起的报错吧。
举报

而无返还

2022-10-13 10:27:56
就这个宏定义,还有包含了rtthread.h头文件
举报

张超

2022-10-13 10:28:18
可以单独定义一下,不要包含RT相关的东西。
举报

张桂英

2022-10-13 10:28:28
可以直接改RT_CONSOLE_DEVICE_NAME宏,不需要直接禁用控制台shell
用uart6就将RT_CONSOLE_DEVICE_NAME定义为"uart6",
不用uart6做控制台串口直接将RT_CONSOLE_DEVICE_NAME改为其他串口设备,或改为不存在的设备即可

另外程序运行期间也可以通过rt_console_set_device切换控制台串口
举报

而无返还

2022-10-13 10:28:37
不用开,或者关finsh吗?那可太好了

我想我用了ulog,ulog用到了finsh和console,finsh
举报

张桂英

2022-10-13 10:28:47
试了下直接把RT_CONSOLE_DEVICE_NAME设为空就行,其他线程正常运行,ulog依赖rt_kprintf的,rt_kprintf内部有判空,运行期间也不会影响其他线程
举报

更多回帖

发帖
×
20
完善资料,
赚取积分