【STM32F723E-DISCO开发板试用体验】+串行通信USART(Cube库)

  • SingleYork
  • LV5工程师
  • |      2017-07-11 19:10:18
  • 浏览量 1378
  • 回复:4
本帖最后由 SingleYork 于 2017-7-11 19:11 编辑 bg1.png

打开STM32CubeMX新建工程,选择STMF723IEKx芯片,选择外部高速晶振(HSE)。由于笔者只在板子上找到了一个USART7口可以外接,所有用这个为例来做演示。

PF6设置RX接收,PF7设置为TX发送。

USART7选择为异步通信方式。

配置时钟系统时钟为216MHz,STMF723IEKx可以单独配置USART时钟,默认USART7的时钟为54Mhz。

串口配置设置波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1.其他参数默认。

生成报告以及代码,编译程序。在main.c文件中可看到串口7的初始化函数MX_UART7_Init(void),其管脚配置也在里面。

C语言中的标准库中所用的标准输出函数,默认的输出设备是显示器,要实现串口或LCD的输出,必须重新定义标准库函数里与输出函数相关的函数。例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下:只要自己添加一个int fputc(int ch, FILE *f)函数,能够输出字符就可以了。

在main.c文件后面添加如下代码,代码中添加了#ifdef宏定义进行条件编译,如果使用GUNC编译,则PUTCHAR_PROTOTYPE 定义为int __io_putchar(int ch)函数,否则定义为int fputc(int ch, FILE *f)函数。

其中HAL_UART_Transmit(&huart7, (uint8_t *)&ch, 1, 0xFFFF);这个语句表示通过串口1发个一个字符。ch为字符的存储地址,0xFFFF为超时时间。在stm32f7xx_hal_uart.c文件中可以找到HAL_UART_Transmit函数。

在main.c文件中添加应用函数:上电打印输出“UART Printf Example: retarget the C library printf function to the UART”,然后每秒循环输出“welcome to www.ickey.cc !!!”

编译程序并下载到开发板,将线路连接好:

在电脑上打开串口调试助手,选择对应的串口号,设置波特率为115200,按下复位按键会接收到如图信息:

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:4
Waedon 2017-08-11
很详细啊,小白都能玩
0   回复
举报
发布
泡沫113355 2017-07-20
能不能分享一下STM32F7的Packs,KEIL官网下载慢得要死,下了两天下好了居然校验出错了:'(
0   回复
举报
发布
xiefy21 2017-07-12
现在的固件库都封的好复杂,我其实还是比较倾向于写寄存器,但是复杂的外设,用库不容易出问题……
0   回复
举报
发布
JESSE7 2017-07-12
不知道为啥,对Cube这样的工具就是有点抵触。要是初学者只知道用Cube那不是害人嘛
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子