【STM32F412-DISCO 开发板试用体验】+串口实验

  • 开发
  • 黄莨元
  • LV5工程师
  • |      2017-04-29 00:58:37
  • 浏览量 1889
  • 回复:4
今天测试了STM32412G-DISCOVERY开发板的串口输出功能,大家都知道,串口是MCU的重要外部接口,在进行软件开发时,可以使用串口进行调试,所以串口是非常重要的,接下来介绍一下串口的使用。(一)串口的介绍简介:通用同步异步收发器 (USART) 能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。USART 通过小数波特率发生器提供了多种波特率。它支持同步单向通信和半双工单线通信;还支持 LIN(局域互连网络)、智能卡协议与 IrDA(红外线数据协会)SIR ENDEC 规范,以及调制解调器操作 (CTS/RTS)。而且,它还支持多处理器通信。通过配置多个缓冲区使用 DMA 可实现高速数据通信。 功能说明:接口通过三个引脚从外部连接到其它设备。任何 USART 双向通信均需要至少两个引脚:接收数据输入引脚 (RX) 和发送数据引脚输出 (TX)RX :接收数据输入引脚就是串行数据输入引脚。过采样技术可区分有效输入数据和噪声,从而用于恢复数据。TX :发送数据输出引脚。如果关闭发送器,该输出引脚模式由其 I/O 端口配置决定。如果使能了发送器但没有待发送的数据,则 TX 引脚处于高电平。在单线和智能卡模式下,该 I/O用于发送和接收数据(USART 电平下,随后在 SW_RX上接收数据)。 两种模式的介绍: (二)硬件连接 我使用了芯片上的串口2外设,也就是PA2PA3引脚。 (三)软件分析串口的使用是比较简单的,而且串口的最基本设置是波特率的设置,在软件方面配置的思路为,开启需要用到的串口时钟,设置对应IO口的模式,设置波特率,数据位长度,奇偶检验位就可以了。接下来着重介绍两个函数:第一个:串口初始化函数 UART_HandleTypeDef的结构体成员如下: Instance :是 USART_TypeDef 结构体指针类型变量,它是执行寄存器基地址,实际上这个基地址 HAL 库已经定义好了,如果是串口2,取值为 USART2即可。Init :是 UART_InitTypeDef 结构体类型变量,它是用来设置串口的各个参数,包括波特率,停止位等。UART_InitTypeDef 结构体定义如下: 这个结构体很重要,现在来介绍一下结构体的参数。BaudRate:波特率WordLength:数据的长度StopBits:停止位Parity:奇偶检验Mode:收/发模式设置HwFlowCtl:硬件流设置OverSampling:过采样设置结构体的基本配置如下所示,波特率为形参变量,可以在函数调用时进行配置 第二个函数:void HAL_UART_MspInit(UART_HandleTypeDef *huart) 上面这个函数会被HAL_UART_Init函数调用,实现的功能是开启相应的时钟,配置好相应IO口的状态,使能串口中断的通道。另外需要重定义fputc函数,如下 到这里已经基本介绍完串口的使用了,编译好程序看看效果吧 :sleepy:最后,感谢云汉社区和ST给予了我这次试用的机会。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

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

所有回答 数量:2
速度之上 2017-05-06
看起来好厉害的样子哦
1   回复
举报
发布
黄莨元 回复 2017-05-06
:P我好像在发烧友看到一个一样的名字:lol你厉害哦:D
0   回复
举报
野蛮人 2017-05-05
:lol加油
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子