ST意法半导体
直播中

贺服窍

7年用户 1003经验值
私信 关注
[问答]

无法使用STM32G030K8中的USART2传输数据咋办

大家好!
我无法使用STM32G030K8中的USART2传输数据。
ISR 寄存器的 TC 标志在向 TDR 寄存器无限时间写入数据后没有设置,如果我用它来控制一个字节的传输,程序没有传输任何东西就挂了。
如果我使用 ISR 的 TXE 位进行控制,那么数据将被部分传输,即并非每个发送的字节都到达。
如果我在发送字节后插入一个强制延迟,那么它并不能解决问题。
USART1 工作没有问题。
我正在使用以下 USART 初始化
RCC-> APBENR1 | = RCC_APBENR1_USART2EN;
USART2-> PRESC = USART_PRESC_PRESCALER_0;
USART2-> BRR = 3333;//波特率9600
USART2-> CR1 = USART_CR1_TE | USART_CR1_RE | USART_CR1_UE;
用于传输数据
while(!(USART2->ISR & (1 << 7))); //等待设置TXE
USART2->TDR = 数据;        
//while(!(USART2->ISR & (1 << 6))); // 等待设置 TC(不工作)


回帖(1)

李刚

2022-12-22 16:47:09
USART2-> PRESC = USART_PRESC_PRESCALER_0;
'G030 中,USART2 没有预分频器,不要使用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分