[STM32F1] STM32F103RC串口发送死循环

[复制链接]
780|11
 楼主| supernan 发表于 2022-1-3 18:31 | 显示全部楼层 |阅读模式
现用到STM32F103RC的串口1(PA9和PA10),给串口发送数据就while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);在这里死循环,直至看门狗复位。
初始代码如下:
RCC_APB2PeriphClockCmd((RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO), ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_USART1,DISABLE);
RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                //TX
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                //RX
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

USART_InitStructure.USART_BaudRate = bound;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_Parity = USART_Parity_No ;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//ÎÞÓ²¼þÊý¾ÝÁ÷¿ØÖÆ
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
    USART_Init(USART1, &USART_InitStructure);
               
    USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);//¿ªÆô¿ÕÏÐÖжÏ
    USART_Cmd(USART1, ENABLE);
    USART_ClearFlag(USART1,USART_FLAG_TC);

请各位用过的朋友指导一下,谢谢!
xxrs 发表于 2022-1-3 18:33 | 显示全部楼层
建议使用stm32cubeMx生成代码
zhanghqi 发表于 2022-1-3 18:34 | 显示全部楼层
建议发送死循环可以查询串口寄存器状态值部分,对应芯片手册分析查找原因
stly 发表于 2022-1-3 18:36 | 显示全部楼层
给串口发送数据就while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);在这里死循环
USART_ClearFlag(USART1,USART_FLAG_TC);
在这条命令之后,只有发送新的数据完成后,TC才会置位

可以考虑这样
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
dengdc 发表于 2022-1-3 18:38 | 显示全部楼层
你的第三行代码
RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
 楼主| supernan 发表于 2022-1-3 18:41 | 显示全部楼层
非常感谢!就这里问题,火眼金睛,厉害!!!我真的
jiajs 发表于 2022-1-3 18:43 | 显示全部楼层
果然很厉害
jiajs 发表于 2022-1-3 18:45 | 显示全部楼层
原来是这样的笔误  火眼金睛啊
wangzsa 发表于 2022-1-3 18:51 | 显示全部楼层
不细心看真看不出来
pengf 发表于 2022-1-3 18:54 | 显示全部楼层
难道编译的时候不会报错吗
xxrs 发表于 2022-1-3 18:56 | 显示全部楼层
如果是cube生成的就应该不会有这种错误啊
 楼主| supernan 发表于 2022-1-3 18:59 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部