 Okay, short summary of the last lab, which we have, we have the initialization of the UART. We definitely initialize the variables, what are the parameters, in our case it was different Boutrade and the different UART, we init the UART. Doing the initialization, the UART store the init structure into registers, but we also call the callback from the MSP init, you know it, in the msp.cfile. We initize the rated peripheries, which are the GPO pins, and also we enable the clocks. And then we leave the init init function on the end. Definitely in the MSP init, we discovering which instance to get the initialization, and we initize the correct pins from this. And definitely on the end, when we start calling the transmit and receive, don't forget the transmit and receive is the blocking function, the R code will stop there until the function end with the OK, or with the error, or with the timeout. Don't forget on this, and always check the return parameters like we talked before. And how this work from the inside, we first initize the periphery, this is clear. Then we call the receive, for example, then this set inside the handle, the busy state, we check if the timeout expire, if yes, then we end with the timeout. If not, we check if the error happened, if not, if yes, we end with the error, if not, we continue, and we will check if the receiving register is empty. If it's empty, then we continue checking the errors, and also if the register is empty. But if it's not empty, if we receive the byte, then we move this byte into the RX buffer, which we selected in the handle. We increment the number of the receiving bytes, it's now we receive one byte, and we checking if we receive all the bytes, which we wanted with the X-Far size. If no, then we start again from the beginning, if yes, we can end with the HL-OK status. This is example how the pooling works in the HL library. You see, this is definitely blocking function because we always need to check the state of the pay-free, which is not effective, but in case that we have nothing else to do, it can be option. But in case we need to do something in background, the pooling, it's not correct, good option for us.