mshd.net
当前位置:首页 >> 关于STM32串口2配置问题 >>

关于STM32串口2配置问题

调用的库函数的名称不一样,初始化配置时写的寄存器名称不一样。无非就是把usart1改为usart2.很简单的

同学,你好!应该是错在IO口配置那位置,因为USART2用的IO口不再是PA9和PA10。如果和我芯片一样STM32F103ZET6,那就应该是换成PA2和PA3了!自己仔细看下自己芯片是哪个IO口吧! 望采纳! 完蛋,没仔细看,你已经改了IO口的,那问题可能就是:如...

调用的库函数的名称不一样,初始化配置时写的寄存器名称不一样。无非就是把usart1改为usart2.很简单的

DR其实是由两个寄存器组成的,一个给发送用(TDR),一个给接收用(RDR)。给DR赋值后串口模块立即通过TDR移位发送出了,并不会保存下来。你读DR时其实是串口RDR接收到的数据。

usart1的时钟和2的时钟是不同的。

void COM2_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = 4800; //波特率 USART_InitStructure.USART_WordLength = USART_WordLength_8b; //数据位 USART_I...

最后没有使能串口2; NVIC_EnableIRQ(USART2_IRQn);

看看STM32相关芯片的参考手册。UART部分对波特率话题有介绍。 结合库代码来看可能更好。

最简单就建个数组当缓冲区,串口2中断接收,串口1判断缓冲区只要有数据就发送,发送时计数器或指针移位的过程最好屏蔽中断。

有可能是优先级的问题,但是首先你得把问题说清楚。

网站首页 | 网站地图
All rights reserved Powered by www.mshd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com