本帖最后由 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,按下复位按键会接收到如图信息:
本帖最后由 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,按下复位按键会接收到如图信息: