STM32学习笔记(二) |
您所在的位置:网站首页 › 最好的串口调试助手 › STM32学习笔记(二) |
我们在调试程序时,经常会使用串口打印相关的调试信息,但是单片机串口不能直接与 PC 端的 USB 接口通讯,需要用到一个USB转串口的芯片来充当翻译的角色。我们使用的开发板上有这个芯片,所以在打印调试信息的时候直接使用USB线连接开发板与电脑USB口就可以了,这里的电路连接如下, USB转TTL与一键下载电路图 这里使用串口1作为调试串口,需要使用跳线帽连接P7接口中的 TX与PA10,RX与PA9; 也实现了一键下载功能,可以使用串口下载程序而无需手动配置BOOT; 还可以通过板子上的USB转TLL调试其他设备,只需将P7接口中的 TX连接其他设备TTL电平接口的RX,RX连接其他设备TTL电平接口的TX,GND连接其他设备的GND,另外开发板还需要供电; 还可以使用开发板上的USB转232功能调试其他232接口设备,可以使用跳线帽连接P7接口中的 TX与TX232,RX与RX232。然后找到开发板上的P12接口,连接 TX与其他设备232接口的RX,RX与其他设备232接口的TX,GND与其他设备的GND,另外再给开发板供电; 注:上述调试串口,USB转TTL与USB转232功能同时只能使用一个,通过P7接口进行配置。 USB转232接口电路图 接下来就是配置软件实现调试串口的功能,这里不介绍串口,只是实现调试串口,方便后续程序调试,对于串口的使用在后面会详细介绍 1.配置串口 我们在上节创建的HAL库工程模板的基础上,通过 STM32CubeMX 来增加串口的配置代码。找到上节创建的项目文件,双击打开 STM32CubeMX 工程文件 配置串口1 :异步模式, 波特率 115200,8位数据位,无奇偶校验,1位停止位( 115200-8-N-1 ),收发模式使能。这个波特率配置很常用,另外 9600-8-N-1 也很常用 配置完成后,点击 GENERATE CODE 生成代码 2.printf 函数重定向 printf 函数会调用 fputc 函数打印数据,如果我们让fputc函数打印的数据直接输出到串口,那调用printf函数时打印的数据就会通过串口发送出去。所以我们可以通过在fputc函数中调用串口发送函数来实现printf函数重定向 用 keil 打开刚才生成的代码,首先我们勾选配置选项中的 Use MicroLIB 然后分别在 usart.h 与 usart.c 中添加如下代码 /* usart.h */ #include /* usart.c */ int fputc(int _char, FILE *_stream) { /* 串口阻塞发送函数 串口1 待发送数据 发送数据个数 发送超时时间*/ HAL_UART_Transmit(&huart1, (const uint8_t *)&_char, 1, 1000); return _char; }最后在 main.c 中就可以调用 printf 函数向串口打印调试信息。在 while(1) 循环中添加如下代码,编译后可下载到单片机中测试 printf("Hello World!\r\n"); HAL_Delay(500);3.编译项目(Project - Rebuild all target files)并下载验证 使用一键下载功能时,可以在项目文件目录下找到.hex文件通过USB转串口的方式下载到开发板。下载程序的软件可以在HAL库工程模板这一章节的最后找到百度网盘链接分享 下载完之后,可以打开串口调试助手,就能看到开发板打印的数据 “Hello World!” 注:下载时选择 DTR的低电平复位,RTS高电平进BootLoader 选项 我们后续的下载都是使用ST-Link下载,可以直接在keil中下载或者调试,比较方便。可按下图配置并下载(Flash - Download) 下载完之后,打开串口调试助手,就可以查看到打印的数据 上述我们是在开发板中进行实际验证的效果,下面使用软件仿真 首先我们需要配置一下参数 然后再编译一下,没有问题就可以进入仿真界面 按下图点击下拉三角形,选择串口1,就能在右下方看到多出了一个标签页 串口显示区域 点击运行,然后观察上述串口显示区域,就可以看到打印的数据 打印出的 “Hello World!”,可以把此标签页从下方拖出来,拉大一点更方便查看 以下是几个常用的工具栏按钮,其他的等用到的时候再介绍 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |