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

关于STM32串口2配置问题

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

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

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

我觉得可能不是配置的问题可能是你发送函数写的有问题 我的代码是ok的 void USART3_Configuration(void){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure;USART_ClockInitTypeDef USART_ClockInitStructure;//使...

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...

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , RCC_APB2Periph_AFIO,ENABLE); 没打开复用时钟?

首先你要理解这个USART,我们一般用的RS232叫UART,它是采用异步(Asynchronous)方式传输数据的,这种方式在传输数据时不需要向对方传递时钟信号。还有一种串行传输叫同步传输(Synchronous),这种方式在传输数据时需要发送时钟信号。而你所用...

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

这个,因为串口的两根数据线TX是用来发送数据,RX是用来接收数据的.然后复用是因为使用了GPIO的复用功能,然后推挽输出是为了增强IO口的输出能力.

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

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