电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
开发板专区
【NUCLEO-L476RG】NO.3 USART向电脑发送字符
【NUCLEO-L476RG】NO.3 USART向电脑发送字符
电脑
hanghang
LV5工程师
| 2016-06-01 21:18:14
浏览量 2299
回复:4
发表新帖
本帖最后由 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。按下复位按键会接收到如图信息。
本帖最后由 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。按下复位按键会接收到如图信息。
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
1
灵澈
2016-06-02
好玩不?:P
0
回复
举报
发布
hanghang
回复
2016-06-02
还不错吧 就是自己没什么水平 只能写点简单的东西 帖子中可能会有些错误 还望大神多多指教
0
回复
举报
发布
×
举报
举报人:
被举报人:hanghang
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子