正点原子 例程学习记录 实验四 串口实验

断断续续地看了一阵子 ,一度被工程下无数的文件劝退,今又看了开发指南,发现其实没有编译的工程包含的文件并不多,绝大部分文件都是编译后才出现的。其中还有很多是系统文件,不需要自己写。

观察还没有编译过的工程包含的project文件,发现其中我们需要自己写的文件只有USER下的main.c,HARDWARE下的led.c和key.c 以及对应的头文件led.h和key.h文件。

遇到的问题:

1、什么是串口

  • 串口 ,战舰板子上 的串口1 是P4 的PA9 和PA10  ,USB端口通过CH340芯片可以将信号分为发送TXD和接收RXD,将板子上的p4 跳线帽进行如下连接:PA9-RXD,PA10-TXD,那么就可以实现通过PA9和PA10复用为串口1进行收发通信了。(注意硬件连接的时候使用usb线连接USB_232和电脑,而不是USB_SLAVE和电脑。)
  • 串口是进行串行通信的接口也就是可以将并行数据 转化为串行数据与计算机等进行交流。
  • 串口1是外设,则PA9和PA10这两个I/O端口需要进行端口复用才能作为串口1 进行使用。

2、内置外设、端口复用、重映射

参考什么是内置外设、端口复用、重映射、仿真?(第十一天)-OpenEdv-开源电子网

  • 对于一个芯片来说, 里面除了有连接各个引脚的电路还有小的模块,这些小的具有独立功能的模块被称为内置外设。对于引脚PA1来说,它不仅连接了芯片的电路也连接了一个内置外设 。
  • 平时它可以作为一个芯片端口正常使用,当内置外设需要与外界进行交流,PA1引脚则会被端口复用为这个外设的端口。
  • 但是如果此时PA1作为芯片端口正在被使用,而外设也需要一个端口进行交流怎么办?那么此时可以将空闲的PAB端口重映射为外设的端口进行使用。
  • 具体端口复用和重映射哪个引脚都是有相应文件规定的,不是随便映射的。

3、中断相关 

3.1 来自开发指南4.5的STM32 NVIC 中断优先级管理

  • MDK中定义了与NVIC相关的寄存器的结构体
  • NVIC中断相关的函数有两个中断优先级分组函数 NVIC_PriorityGroupConfig、中断初始化函数 NVIC_Init。
  • 中断优先级设置的步骤:先调用NVIC_PriorityGroupConfig 确定抢占优先级和子优先级的分配位数,对于每一个中断的优先级选择,调用NVIC_Init

3.2 usart 文件夹介绍

  • usart文件夹包括usart.c 和 usart.h 进行串口的初始化和中断接收
  • usart.c中包含了2个函数一个是 USART1_IRQHandler中断响应函数,即中断发生后执行的代码;另外一个是uart_init进行串口初始化其中包括了中断优先级的设置。
  • usart.h中定义了EN_USART1_RX,当需要使用串口接 收的时候,设置 EN_USART1_RX 为 1 就可以了。不使用的时候设置EN_USART1_RX 为 0 即可,默认是设置 EN_USART1_RX 为 1,也就是开启串口接收的。

4、结果

如果不选中发送新行,那么会一直将发送的数据放在缓冲区内,直到识别到回车才一起发送出去

版权声明:本文为CSDN博主「bupt_zq」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41848295/article/details/122412017

断断续续地看了一阵子 ,一度被工程下无数的文件劝退,今又看了开发指南,发现其实没有编译的工程包含的文件并不多,绝大部分文件都是编译后才出现的。其中还有很多是系统文件,不需要自己写。

观察还没有编译过的工程包含的project文件,发现其中我们需要自己写的文件只有USER下的main.c,HARDWARE下的led.c和key.c 以及对应的头文件led.h和key.h文件。

遇到的问题:

1、什么是串口

  • 串口 ,战舰板子上 的串口1 是P4 的PA9 和PA10  ,USB端口通过CH340芯片可以将信号分为发送TXD和接收RXD,将板子上的p4 跳线帽进行如下连接:PA9-RXD,PA10-TXD,那么就可以实现通过PA9和PA10复用为串口1进行收发通信了。(注意硬件连接的时候使用usb线连接USB_232和电脑,而不是USB_SLAVE和电脑。)
  • 串口是进行串行通信的接口也就是可以将并行数据 转化为串行数据与计算机等进行交流。
  • 串口1是外设,则PA9和PA10这两个I/O端口需要进行端口复用才能作为串口1 进行使用。

2、内置外设、端口复用、重映射

参考什么是内置外设、端口复用、重映射、仿真?(第十一天)-OpenEdv-开源电子网

  • 对于一个芯片来说, 里面除了有连接各个引脚的电路还有小的模块,这些小的具有独立功能的模块被称为内置外设。对于引脚PA1来说,它不仅连接了芯片的电路也连接了一个内置外设 。
  • 平时它可以作为一个芯片端口正常使用,当内置外设需要与外界进行交流,PA1引脚则会被端口复用为这个外设的端口。
  • 但是如果此时PA1作为芯片端口正在被使用,而外设也需要一个端口进行交流怎么办?那么此时可以将空闲的PAB端口重映射为外设的端口进行使用。
  • 具体端口复用和重映射哪个引脚都是有相应文件规定的,不是随便映射的。

3、中断相关 

3.1 来自开发指南4.5的STM32 NVIC 中断优先级管理

  • MDK中定义了与NVIC相关的寄存器的结构体
  • NVIC中断相关的函数有两个中断优先级分组函数 NVIC_PriorityGroupConfig、中断初始化函数 NVIC_Init。
  • 中断优先级设置的步骤:先调用NVIC_PriorityGroupConfig 确定抢占优先级和子优先级的分配位数,对于每一个中断的优先级选择,调用NVIC_Init

3.2 usart 文件夹介绍

  • usart文件夹包括usart.c 和 usart.h 进行串口的初始化和中断接收
  • usart.c中包含了2个函数一个是 USART1_IRQHandler中断响应函数,即中断发生后执行的代码;另外一个是uart_init进行串口初始化其中包括了中断优先级的设置。
  • usart.h中定义了EN_USART1_RX,当需要使用串口接 收的时候,设置 EN_USART1_RX 为 1 就可以了。不使用的时候设置EN_USART1_RX 为 0 即可,默认是设置 EN_USART1_RX 为 1,也就是开启串口接收的。

4、结果

如果不选中发送新行,那么会一直将发送的数据放在缓冲区内,直到识别到回车才一起发送出去

版权声明:本文为CSDN博主「bupt_zq」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41848295/article/details/122412017

生成海报
点赞 0

bupt_zq

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

CH579(M0内核)中断向量表偏移处理

通常情况下,为了产品后续的升级,程序都会分为两部分BootloaderApp,因为有两个程序,所以需要对中断向量表进行处理,否则,当程序已经跳转到app中运行,当中断产生的时候,响应函数仍然是Bootloader的中断函数,而不是app的 在S

STM32CubeMX系列|DHT11温湿度传感器

DHT11温湿度传感器 1. DHT11简介 DHT11是一款温湿度一体化的数字传感器,该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机连接。通过单片机微处理器简单的电路连接就能够实时

GD32F103基础教程—外部中断实验(八)

一、教程简介 本章主要是讲解GPIO输入实验,通过按键触发外部中断,控制LED2闪烁。 二、实验流程 1、工程配置 外部中断触发实验工程配置方法与第五章的配置方法一致,具体请查看第五章教程&#xff0c