while(1)
{
ch = getchar();
printf("%c\n",ch);
/* 光电信号 */
if( GDB_Scan(GPIOB,GPIO_Pin_10) == GDB_OFF )
{
printf("\r\n PB10_OFF \r\n");
/* 光源触发 */
PG0_OFF;
想的是怎样一直执行循环,当串口接收到PC的数据时去处理数据,再循环。现在问题时,直接卡在ch = getchar(); 执行这一步,要是不收到数据,就一直等待while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);。每次只有接收一次数据才循环一次,和我想达到的效果不一样。问了一下别人,给的参考是表驱动,小白,不懂,暂时只能在别人的程序上参考,然后调试,看会出现哪些问题和效果。有人说用中断,这个暂时还没有什么好的思路。现在只能求助,看看怎么解决这个问题。 |