烽火社区

标题: 【NUCLEO-L476RG】NO.3 USART向电脑发送字符 [打印本页]

作者: 海的一般    时间: 2016-6-1 09:18 PM
标题: 【NUCLEO-L476RG】NO.3 USART向电脑发送字符
本帖最后由 hanghang 于 2016-6-1 22:14 编辑

1.采用串口2发送,配置如下选择板子
[attach]32231[/attach]

选择时钟源和USART2
[attach]32232[/attach]

配置时钟
[attach]32233[/attach]

配置USART2
[attach]32234[/attach]
[attach]32235[/attach]

点击 生成工程
[attach]32236[/attach]

2.生成报告以及代码,编译程序。在usart.c文件中可看到串口1的初始化函数MX_USART1_UART_Init(void),以及管脚配置函数HAL_UART_MspInit()。
        C语言中的标准库中所用的标准输出函数,默认的输出设备是显示器,要实现串口或LCD的输出,必须重新定义标准库函数里与输出函数相关的函数。例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下:只要自己添加一个int fputc(int ch, FILE *f)函数,能够输出字符就可以了。
        在usart.c文件后面添加如下代码,代码中添加了#ifdef宏定义进行条件编译,如果使用GUNC编译,则PUTCHAR_PROTOTYPE 定义为int __io_putchar(int ch)函数,否则定义为int fputc(int ch, FILE *f)函数。

[attach]32237[/attach]
   其中HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);这个语句表示通过串口1发个一个字符。ch为字符的存储地址,0xFFFF为超时时间。在stm32l4xx_hal_uart.c文件中可以找到HAL_UART_Transmit函数。
在main.c文件中添加应用函数。
[attach]32238[/attach]
3.编译程序并下载到开发板。在电脑上打开串口调试助手。选择对应的串口号,设置波特率为115200。按下复位按键会接收到如图信息。
[attach]32239[/attach]




作者: btiger2000    时间: 2016-6-2 09:02 AM
好玩不?
作者: haagen    时间: 2016-6-2 10:14 AM
灵澈 发表于 2016-6-2 09:02
好玩不?

还不错吧 就是自己没什么水平  只能写点简单的东西 帖子中可能会有些错误 还望大神多多指教

作者: 名剑友进芯城    时间: 2016-6-15 11:04 AM
hanghang 发表于 2016-6-2 10:14
还不错吧 就是自己没什么水平  只能写点简单的东西 帖子中可能会有些错误 还望大神多多指教
...

加油,慢慢来,技术是通过不断的积累的
作者: MHB520    时间: 2016-6-19 06:23 PM
好厉害,谢谢楼主分析这么多




欢迎光临 烽火社区 (http://bbs.cnecport.com/) Powered by Discuz! X3.2