【STM32F407开发板用户手册】第24章STM32F407的USART应用之八个串口F。。。.pdfVIP

  • 9
  • 0
  • 约3.26万字
  • 约 19页
  • 2023-08-23 发布于上海
  • 举报

【STM32F407开发板用户手册】第24章STM32F407的USART应用之八个串口F。。。.pdf

【STM32F407开发板⽤户⼿册】第24章STM32F407的USART应 ⽤之⼋个串⼝F。。。 第24章 STM32F407的USART应⽤之⼋个串⼝FIFO实现 本章节为⼤家讲解STM32F407的6个串⼝的FIFO驱动实现,后⾯的ESP8266,GPS,RS485,GPRS等试验都是建⽴在这个驱动的基础上 实现。 除了串⼝FIFO的驱动实现,RS232通信也通过本章节做个讲解。 24.1 初学者重要提⽰ 24.2 硬件设计 24.3 串⼝驱动设计 24.4 串⼝FIFO板级⽀持包(bsp_uart_fifo.c) 24.5串⼝FIFO驱动移植和使⽤ 24.6实验例程设计框架 24.7 实验例程说明(MDK) 24.8实验例程说明(IAR) 24.9总结 24.1 初学者重要提⽰ 1. 学习本章节前,务必优先学习第23章。 2. 串⼝FIFO的实现跟前⾯章节按键FIFO的机制是⼀样的。 3. 本章节⽐较重要,因为后⾯的ESP8266,GPS,RS485,GPRS等试验都是建⽴在这个驱动的基础上实现。 4. ⼤家⾃⼰做的板⼦,测试串⼝收发是乱码的话,重点看stm32f4xx_hal_conf.h⽂件中的HSE_VALUE的⼤⼩跟板⼦上实际晶振⼤⼩是 否⼀致,然后再看PLL配置。 5. CH340/CH341的USB转串⼝Windows驱动程序的安装包,⽀持32/64位 Windows 10/8.1/8/7。。 24.2 硬件设计 STM32F407IGT6最多可以⽀持6个独⽴的串⼝。其中串⼝4和串⼝5和SDIO的GPIO是共⽤的,也就是说,如果要⽤到SD卡,那么串⼝4和 串⼝5将不能使⽤。串⼝功能可以分配到不同的GPIO。我们常⽤的引脚分配如下: 串⼝USART1 TX = PA9, RX = PA10 串⼝USART2 TX = PA2, RX = PA3 串⼝USART3 TX = PB10, RX = PB11 串⼝UART4 TX = PC10, RX = PC11(和SDIO共⽤) 串⼝UART5 TX = PC12, RX = PD2(和SDIO共⽤) 串⼝USART6 TX = PG14, RX = PC7 STM32-V5开发板使⽤了4个串⼝设备。 串⼝1⽤于RS232接⼝,很多例⼦的pritnf结果就是输出到串⼝1 串⼝2⽤于GPS 串⼝3⽤于RS485接⼝ 串⼝6⽤于TTL串⼝插座,板⼦上有GPRS插座和串⼝WIFI插座。 下⾯是RS232的原理图: 关于232的PHY芯⽚SP3232E要注意以下⼏个问题: SP3232E的作⽤是TTL电平转RS232电平。 电阻R130的作⽤是避免CPU复位期间,TX为⾼阻时串⼝线上出现异常数据。 检测SP3232E的好坏可以采⽤回环的⽅式,即短接T1OUT和R1IN,对应到DB9插座上就是短接引脚2和引脚3。 实际效果如下: 通过这种⽅式,可以在应⽤程序中通过串⼝发送⼏个字符,查看是否可以正确接收来判断232 PHY芯⽚是否有问题。 由于这⾥是TTL转RS232,如果电脑端⾃带DB9串⼝,可以找根交叉线直接接上。如果电脑端没有,就需要⽤RS232转USB的串⼝ 线。这⾥要注意是RS232转USB,不是TTL转USB。像我们⽤的CH340就是RS232转USB芯⽚。 检测串⼝线的好坏跟板⼦上的232 PHY⼀样,将电脑端的串⼝助⼿打开,串⼝线接到电脑端并短接串⼝线的2脚和3脚,然后使⽤串⼝ 助⼿进⾏⾃收发测试即可。 24.3 串⼝FIFO驱动设计 24.3.1 串⼝FIFO框架 为了⽅便⼤家理解,先来看下串⼝FIFO的实现框图: 第1阶段,初始化: 通过函数bsp_InitUart初始化串⼝结构体,串⼝硬件参数。 第2阶段,串⼝中断服务程序: 接收中断是⼀直开启的。 做了发送空中断和发送完成中断的消息处理。 第3阶段,串⼝数据的收发: 串⼝发送函数会开启发送空中断。 串⼝接收中断接收到函数后,可以使⽤函数comGetChar获取数据。 24.3.2 串⼝FIFO之相关的变量定义 串⼝驱动的核⼼⽂件为:bsp_uart_fifo.c, bsp_uart_fifo.h。 这⾥⾯包括有串⼝硬件的配置函数、中断处理函数,以及串⼝的读写接⼝函数。还有ptinft函数的实现。 每个串⼝

文档评论(0)

1亿VIP精品文档

相关文档