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