目录
前言
因为工作关系需要用到STM32F207ZGTx的芯片,所以公司购买了基于STM32F207ZGT6U芯片的ST开发板NUCLEO-F207ZG。而且要求使用FeeRTOS+Lwip的环境,来进行软件开发,主要目的是通过此环境,运行一个软件下载程序,此程序用到了lwip库封装的socket套接字函数库,通过Tcp请求服务器下载文件包。因为我自己第一次正式做一个关于STM32的程序项目,之前只是在学校学习和了解一些基础,认识比较浅显,所以写下本文来加深自己的学习和了解,并且总计经验分享出来,有问题可以共同探讨。
本文内容:接下来我们熟悉开发板,来进行裸机串口输出调试信息的流程
配置软件:STM32CubeMx 6.2.1
开发板:NUCLEO-F207ZG
配置环境:裸机配置UART5
编译软件:keil 5.27
一、详细步骤
1.查看UART5引脚
首先我们选择UART5这里可以看到串口5的引脚有分别是UART5_RX:PD2 ,UART_TX:PC12
2.打开STM32CubeMx 配置串口UART5
使用STM32CubeMx 打开工程选择打开串口UART5,可以看到默认引脚就是PD2和PC12。模式我们选择异步通信:Asynchronous
3.串口中断
串口中断我们不使用所以不打开
4. 配置高速时钟HSE
配置高速时钟HSE,选择Crystal/Ceramic Resonator,低速时钟LSE不使能
5.配置系统sys
配置系统sys,Debug选择串口Serial Wire, 选择系统时钟源sysTick。
6.Clock Configuration配置
进入Clock Configuration,HCLK根据开发板信息选择最大120Mhz.
7.配置Project Manager
配置Project Manager下的工程名称,软件环境,写工程名称,选择编译软件,我用的keil5.27这里选择,MDK-ARM 5.27
8.选择生产工程代码的内容
第二项选择生产工程代码的内容,这里选择只生成所需要的文件包 .c和.h文件分开,其余配置默认即可。
9. 生成工程
生成工程,点击右上角GENERATE CODE
10.打开工程
在keil中打开工程
11.编写代码
在main.c中使用HAL库编写代码调试串口输出信息。
代码示例:
/* USER CODE BEGIN WHILE */
char buf[]={"这里是串口5打印调试信息!\r\n"};
while (1)
{
/* USER CODE END WHILE */
HAL_UART_Transmit(&huart5,(uint8_t *)buf,sizeof(buf),0xffff);
HAL_Delay(1000);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
HAL_UART_Transmit(&huart5,(uint8_t *)buf,sizeof(buf),0xffff);
是HAL库stm32f2xx_hal_uart.h中串口写入数据函数,
huart5:是串口创建的句柄指针。
Buf:为传输数据缓存
sizeof(buf):传输的数据大小,单位:字节
0xffff:表示发送的最大超时时间。单位:秒
这里程序功能是间隔1秒在串口输出一次buf的内容。
12.编译
在keil中编译,没有报错
13.烧录
点击load,烧录程序
14.调试
使用串口调试助手,连接UART5,这里的端口号为COM7,波特率为11520,连接成功后一直接收到打印的调试信息,表示本次测试是成功的。
总结
- 代码使用了HAL库
- Dubeg下载时需要提前选在好Reset and Run 这样下载后程序会直接运行,如果你忘记了 ,会导致没有LED点亮的现象。
- 我这里只写了发送的函数,所以只会一直发送数据到串口调试助手。