今天试了一下USART和电脑串口助手的通讯,发现一个很奇怪的现象:
首先,下面这段代码执行成功,STM接收什么就发送什么,调试没有问题
void USART1_IRQHandler(void)
{
u8 Receiver1;
if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
{
Receiver1 =USART_ReceiveData(USART1);
USART_SendData(USART1,Receiver1);
}
}
但是,我想在main函数里面增加发送串口的语句,却一直没有反应,不知道为什么?
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //?è??NVIC????·?×é2:2??????????????2???ì????????
usart_init(9600,1); //这里激活串口1
usart_init(9600,2); //这里激活串口2
while(1)
{
while(RESET == USART_GetFlagStatus(USART1,USART_FLAG_TXE));
USART_SendData(USART1,'a');
while(RESET == USART_GetFlagStatus(USART1,USART_FLAG_TXE));
USART_SendData(USART1,'b');
delay_ms(1000);
}}
第一段USART1_IRQHandler中断函数执行没有问题(如下图),所以可以知道USART1的相关配置是已经成功的,
但是就不明白为什么main函数里面发送的字符a和b无法在串口助手里面显示?
|