¿Cómo recibir múltiples caracteres a través del puerto serie UART?
Cada vez que se recibe un carácter, el microcontrolador interrumpirá el UART. Durante el proceso de interrupción, usted asigna todos los caracteres SBUF leídos a la matriz RxdData. Por ejemplo, el carácter que lee es 0x01, luego RxdData. [0]-RxdData[3] son todos 0x01. Como estás enviando 2835, al recibir 2, RxdData[0]-RxdData[3] son todos 2, y al recibir 8, RxdData[0]-RxdData[3] son todos 8, por eso son todos Solo el último Se muestra el dígito de los cuatro números.
Solución:
Dado que está enviando cuatro números, defina un recuento de variables globales y una matriz de búfer RxdData_Buffer[]. Cada vez que se reciba un carácter, se ingresará una interrupción. RxdData_Buffer[count]=SBUF; al mismo tiempo, el recuento aumenta en 1 cuando se reciben los cuatro caracteres, el valor del recuento es 4, luego borre el recuento a 0 en la función principal y asigne todos los valores de RxdData_Buffer; [] a RxdData[]. En la función principal, se llama a RxdData [] para realizar la visualización del tubo digital.
Está bien, la idea general es esta. Por favor, adóptala, dale me gusta y da puntos. . . . . .