因为要添加函数库"stdio.h"。
// 发送数据
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (unsigned char) ch);// USART1 可以换成 USART2 等
while (!(USART1->SR & USART_FLAG_TXE));
return (ch);
}
// 接收数据
int GetKey (void) {
while (!(USART1->SR & USART_FLAG_RXNE));
return ((int)(USART1->DR & 0x1FF));
}
因为在printf函数当中有个while(!)函数,你调试的调进去,肯定停在这一句。
我认为问题在于printf函数里面要指定一个串口进行打印,你有没有配置这个串口?若没有配置,则发送和接受不会接收到标志位。
因为要添加函数库"stdio.h"。
// 发送数据
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (unsigned char) ch);// USART1 可以换成 USART2 等
while (!(USART1->SR & USART_FLAG_TXE));
return (ch);
}
// 接收数据
int GetKey (void) {
while (!(USART1->SR & USART_FLAG_RXNE));
return ((int)(USART1->DR & 0x1FF));
}
因为在printf函数当中有个while(!)函数,你调试的调进去,肯定停在这一句。
我认为问题在于printf函数里面要指定一个串口进行打印,你有没有配置这个串口?若没有配置,则发送和接受不会接收到标志位。
举报