你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在RTT系统上串口怎么使用通过stm32的串口输出信息

[复制链接]
张亚飞 提问时间:2017-7-19 15:59 /
在源码中找了一圈找到下面截图里边的内容,但是源码没有说明调用哪个函数输出和接收数据。论坛上都是信号量互斥锁线程的内容,最基本的串口使用都没有。哪位片子上跑着RTT用过串口的麻烦给说一下。
startup.png


initstm32.png

board.png

收藏 评论18 发布时间:2017-7-19 15:59

举报

18个回答
洛千叶 回答时间:2017-7-20 08:59:56
在rtconfig.h文件里配置

// <bool name="RT_USING_SERIAL" description="Using Serial" default="true" />
#define RT_USING_SERIAL

/* SECTION: Console options */
#define RT_USING_CONSOLE
/* the buffer size of console*/
#define RT_CONSOLEBUF_SIZE                128
// <string name="RT_CONSOLE_DEVICE_NAME" description="The device name for console" default="uart1" />
#define RT_CONSOLE_DEVICE_NAME            "uart1" //使用串口1作为控制台输出,board.h中要使能串口1

/* SECTION: finsh, a C-Express shell */
#define RT_USING_FINSH
/* Using symbol table */
#define FINSH_USING_SYMTAB
#define FINSH_USING_DESCRIPTION
张亚飞 回答时间:2017-7-21 10:03:24
洛千叶 发表于 2017-7-21 08:55
rt_kprintf("可见卫星数:%d\r\n",gps_raw_int.satellites_visible);
就这样使用

你可以看看你的工程里我截图的最后那个rt_hw_console_output函数是不是为空,如果是空的话是不是别的地方对rt_kprintf()有新的define或者新的实现。按照代码追过去rt_hw_console_output函数是空的。函数前边有个weak 可能其他地方有新的实现。
张亚飞 回答时间:2017-7-19 16:41:05
有朋友说用rt_device_write函数,但是函数第一个参数应该指定串口,参数类型是下边那张图,很明显需要初始化,初始化的内容不知道从哪获取。

rt_device_write.png


rt_device_t.png
斜阳 回答时间:2017-7-20 08:42:46
RTT不需要指定串口。打开gdbserver再打开rtt既可以收到rtt传出来的消息了
张亚飞 回答时间:2017-7-20 09:40:52
洛千叶 发表于 2017-7-20 08:59
在rtconfig.h文件里配置

//

感谢,那改完之后调用哪个函数输出信息? 并且函数的参数是什么呢?
张亚飞 回答时间:2017-7-20 09:41:09
斜阳__ 发表于 2017-7-20 08:42
RTT不需要指定串口。打开gdbserver再打开rtt既可以收到rtt传出来的消息了

gdbserver 什么东西?
废鱼 回答时间:2017-7-20 10:02:40
这个类似linux的操作,通过设备打开、关闭、写入,读取来实现数据传输。加载驱动时,都写好了指针指定的函数。
张亚飞 回答时间:2017-7-20 10:08:57
安 发表于 2017-7-20 10:02
这个类似linux的操作,通过设备打开、关闭、写入,读取来实现数据传输。加载驱动时,都写好了指针指定的函 ...

你对linux也有研究?  也就是说我需要自己写函数打开串口1,然后写数据,写完再关闭?
废鱼 回答时间:2017-7-20 10:18:32
只是研究一些简单功能,差不多就是这样操作。
洛千叶 回答时间:2017-7-20 10:22:29
张亚飞 发表于 2017-7-20 09:40
感谢,那改完之后调用哪个函数输出信息? 并且函数的参数是什么呢?

rt_kprintf和printf一样使用,就是不能输出浮点
张亚飞 回答时间:2017-7-20 11:13:42
洛千叶 发表于 2017-7-20 10:22
rt_kprintf和printf一样使用,就是不能输出浮点

我追了一下rt_kprint 的代码发现最后输出是空,内容是自己填写吗?
rt_kprintf.png

using_device.png

console.png

output.png





张亚飞 回答时间:2017-7-20 11:15:54
张亚飞 发表于 2017-7-20 11:13
我追了一下rt_kprint 的代码发现最后输出是空,内容是自己填写吗?

第三张图说明_console_device == RT_NULL,第四张图是rt_hw_console_output(rt_log_buf)函数的原型显示内容是空,输出不了内容。
斜阳 回答时间:2017-7-20 15:01:41
张亚飞 发表于 2017-7-20 09:41
gdbserver 什么东西?

jlink里的工具软件全称: J-Link GDB Server
张亚飞 回答时间:2017-7-20 16:31:21
斜阳__ 发表于 2017-7-20 15:01
jlink里的工具软件全称: J-Link GDB Server

没有结果
洛千叶 回答时间:2017-7-21 08:55:24
张亚飞 发表于 2017-7-20 11:15
第三张图说明_console_device == RT_NULL,第四张图是rt_hw_console_output(rt_log_buf)函数的原型显示内 ...

rt_kprintf("可见卫星数:%d\r\n",gps_raw_int.satellites_visible);
就这样使用
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版