我正在学习嵌入式系统。我有一个atmel UC3-L0和指南针传感器。现在我安装AtmelStudio并将一些演示代码下载到主板中。但我不知道演示代码中的“printf”函数在哪里出现数据。我应该怎么做才能获取数据?atmel传感器使用printf
1
A
回答
1
printf函数输出到标准输出。
一般与需要定义如何一个字符从一个物理接口(通常是USART,控制台端口,USB端口,4端口LCD接口等)发送或接收无操作系统“裸”处理器。因此,通常您可能需要使用处理器板的USART端口连接到使用串行电缆连接运行Hyperterm,PuTTY或类似设备的PC。
在本质上,你将需要
- 使用
fdev_setup_stream()
宏观和 - 提供指针,告诉
printf()
功能究竟如何读取和/到流写入功能get()
和put()
创建FILE
流(例如,读/写USART,LCD显示器等)。 - 根据您的硬件,您可能有库(已经包含这些功能(加上正确的端口初始化函数),例如, uart.c/.H,lcd.c/.H等
在stdio.h的文件(如:here)查找以下: printf()
,fdev_setup_stream()
如果您已经下载Atmel Studio您可以查看stdiodemo.c代码以获取更多信息。
3
为了用printf在ATMEL的工作室,你应该检查下列事项:
- 添加和应用从项目 - > ASF向导的标准串行I/O模块。
- 还要从ASF向导中添加USART模块。
- 在主函数之前包含以下代码片段。
static struct usart_module usart_instance; static void configure_console(void) { struct usart_config usart_conf; usart_get_config_defaults(&usart_conf); usart_conf.mux_setting = EDBG_CDC_SERCOM_MUX_SETTING; usart_conf.pinmux_pad0 = EDBG_CDC_SERCOM_PINMUX_PAD0; usart_conf.pinmux_pad1 = EDBG_CDC_SERCOM_PINMUX_PAD1; usart_conf.pinmux_pad2 = EDBG_CDC_SERCOM_PINMUX_PAD2; usart_conf.pinmux_pad3 = EDBG_CDC_SERCOM_PINMUX_PAD3; usart_conf.baudrate = 115200; stdio_serial_init(&usart_instance, EDBG_CDC_MODULE, &usart_conf); usart_enable(&usart_instance); }
确保调用configure_console从主功能system_init()之后。
现在转到tools-> extension manager。添加终端窗口扩展。
- 构建并运行你的程序,并从view-> terminal窗口打开终端窗口。将正确的com端口连接到您的设备,并将波特率设置为115200,并在终端窗口中点击连接。
- 您应该现在看到printf语句。 (Float没有打印在Atmel工作室)
0
我最近很困惑这个自己。我已经安装了Atmel Studio 7.0,并通过一个项目调用printf的示例项目使用了SAMD21开发板。
在我看到,有一个结构部分中的示例代码:
/*!
* \brief Initialize USART to communicate with on board EDBG - SERCOM
* with the following settings.
* - 8-bit asynchronous USART
* - No parity
* - One stop bit
* - 115200 baud
*/
static void configure_usart(void)
{
struct usart_config config_usart;
// Get the default USART configuration
usart_get_config_defaults(&config_usart);
// Configure the baudrate
config_usart.baudrate = 115200;
// Configure the pin multiplexing for USART
config_usart.mux_setting = EDBG_CDC_SERCOM_MUX_SETTING;
config_usart.pinmux_pad0 = EDBG_CDC_SERCOM_PINMUX_PAD0;
config_usart.pinmux_pad1 = EDBG_CDC_SERCOM_PINMUX_PAD1;
config_usart.pinmux_pad2 = EDBG_CDC_SERCOM_PINMUX_PAD2;
config_usart.pinmux_pad3 = EDBG_CDC_SERCOM_PINMUX_PAD3;
// route the printf output to the USART
stdio_serial_init(&usart_instance, EDBG_CDC_MODULE, &config_usart);
// enable USART
usart_enable(&usart_instance);
}
在Windows设备管理我看到,有一个“Atmel公司EDBG USB端口(COM3)”下的“端口”中所列。然而,此端口的“属性”的一个被列为9600个比特每秒。我将其从9600更改为115200,以与上面的配置部分保持一致。
最后,我跑PuTTY.exe并设置连接 - >串口设置COM3和115200个波特。然后我去了会话,然后点击串行连接类型,然后点击打开按钮。而且,BAM,通过PuTTY有我的printf输出。
相关问题
- 1. 如何使用传感器
- 2. 无法使用printf命令构建atmel studio 6.2项目
- 3. 如何使用pyserial流式传感器传感器?
- 4. 传感器使用哪些传感器.TYPE_ROTATION_VECTOR
- 5. 传感器标签CC2650 - 读取传感器传感器
- 6. 压力传感器重量传感器
- 7. 接近感应传感器时,手移动传感器
- 8. Android:传感器
- 9. Android传感器
- 10. 为什么在使用ROTATION_VECTOR传感器之前克隆Android传感器值?
- 11. 如何使用光线传感器
- 12. 使用谷歌地图Android传感器
- 13. 使用VB.NET显示Arduino传感器值
- 14. 使用lm传感器获取温度
- 15. 在Android中使用传感器数据
- 16. Android使用传感器改变亮度
- 17. 在Android上使用React Native传感器
- 18. Android游戏如何使用传感器?
- 19. 使用weka分类传感器数据
- 20. 使用传感器的方向
- 21. 使用旋转矢量传感器
- 22. 使用传感器计算脉率
- 23. 问题使用传感器 - 加速计
- 24. 使用SQLite记录传感器数据
- 25. 在android中使用接近传感器
- 26. 了解使用传感器的Ramda
- 27. 使用接近传感器与onSensorChanged
- 28. Android传感器CPU使用率
- 29. Android如何使用传感器?
- 30. 利用传感器配料
+1,尼斯的答案,也许只是让文件名和FUNC名字看起来像代码? – angelatlarge 2013-04-05 20:40:52
@angelatlarge哉! – MikeD 2013-04-06 10:06:40