查看: 822|回复: 4
打印 上一主题 下一主题

【NUCLEO-L476RG】NO.3 USART向电脑发送字符

[复制链接] qrcode

22

主题

29

帖子

86

积分

注册会员

Rank: 2

积分
86
楼主
跳转到指定楼层
发表于 2016-6-1 09:18 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hanghang 于 2016-6-1 22:14 编辑

1.采用串口2发送,配置如下选择板子


选择时钟源和USART2


配置时钟


配置USART2



点击 生成工程


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)函数。


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

3.编译程序并下载到开发板。在电脑上打开串口调试助手。选择对应的串口号,设置波特率为115200。按下复位按键会接收到如图信息。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

111

帖子

76

积分

注册会员

Rank: 2

积分
76
沙发
发表于 2016-6-2 09:02 AM | 只看该作者
好玩不?
回复 支持 反对

使用道具 举报

2

主题

95

帖子

44

积分

新手上路

Rank: 1

积分
44
板凳
发表于 2016-6-2 10:14 AM | 只看该作者
灵澈 发表于 2016-6-2 09:02
好玩不?

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

使用道具 举报

0

主题

65

帖子

6

积分

新手上路

Rank: 1

积分
6
地板
发表于 2016-6-15 11:04 AM | 只看该作者
hanghang 发表于 2016-6-2 10:14
还不错吧 就是自己没什么水平  只能写点简单的东西 帖子中可能会有些错误 还望大神多多指教
...

加油,慢慢来,技术是通过不断的积累的
回复 支持 反对

使用道具 举报

0

主题

93

帖子

30

积分

新手上路

Rank: 1

积分
30
5#
发表于 2016-6-19 06:23 PM | 只看该作者
好厉害,谢谢楼主分析这么多
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表