一个简单的STM32F103的串口通讯程序,但是一直调试不成功,求指教!!

前面的程序分别是,GPIO的定义以及GPIO和USART时钟的开启,以下是USART的配置和主程序
USART_InitStruture.USART_BaudRate=9600;
USART_InitStruture.USART_WordLength=USART_WordLength_8b;
USART_InitStruture.USART_StopBits=USART_StopBits_1;
USART_InitStruture.USART_Parity=USART_Parity_No;
USART_InitStruture.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStruture.USART_Mode=USART_Mode_Rx|USART_Mode_Rx;
USART_Init(USART1,&USART_InitStruture);
USART_Cmd(USART1,ENABLE);
}
void delay(u32 i)
{
while(i--);
}
int main(void)
{
USART_Config();
while(1)
{
USART_SendData(USART1,0X55); //不停的向PC发送0x55
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);
GPIO_ResetBits(GPIOB,GPIO_Pin_8); //发送完一次后LED(PB.8)闪烁一次
delay(0xfffff);
GPIO_SetBits(GPIOB,GPIO_Pin_8);
delay(0xfffff);
}
}
调试的结果是PC上的串口没有收到数据,单步执行时程序能够走完一次循环(PC上还是没有收到数据),第二次就一直停在 while(USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);不走了,不知道怎么回事。

你的程序不完整,只能猜测了:
先在PC用“串口小助手”,检查你真的是否发出了数据。
先分清楚是发送问题 还是接收问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-15
USART 时钟打开了吗?复用呢?
第2个回答  2014-05-04
发送的数据怎么接受的函数有吗
相似回答