 Okay, in the next hands-on, we move a little bit further, we know how to use the SPI, then now we only update our hands-on and we use the interrupt. For me, I start from scratch, you can use your own hands-on if you want, then I will here start for sure from beginning. Okay, I have my maker control, I will enable the SPI 1 in the full duplex mode. Again, the clocks will be not used because I create the loopback between the PA7 and PA6, which is still present on my board from the previous hands-on. I'm still okay with the 16 MHz, but here in the SPI configuration, okay, because I will start and receive the data simultaneously, then I will use the lower Pascale, the lower frequency to be sure that I avoid the overruns during the send-bank and the reception. I will check the pins, I have here the maximum speed to high, no pull-ups, alternative functions, everything is okay here, but here in the NVIC, I need to enable the global interrupt, like in the USART hands-on. I click on the okay, in case that you want, you can here also change the parities for the interrupts, the pension parities, but now I have only this one and the sys-tick, then I'm okay with this approach. I can save now my project as a SPI 2, why not? I here generate this project from Kyle, okay, and I can generate my project. I can open my project in Cal, in case that I installed the cal before, he will search for it, he will find it. Now I can again look on main, it's completely the same, like in the previews, I have here the SPI initialization, I need first time compile my code to allow me use the go to definition, okay, now I can go to definition, it's completely the same, but as you know in the interrupt, the change will be in the MSP file, where I here enable the interrupts, also in the it.c, here is the SPI interrupt handler and the HL interrupt handler, then now in main, I can do the almost the same like before, I define two buffers, one for the transmitting and second one for the receiving, I put here some default values, okay, and the second variable for the reception, for the 10 bytes, why not, for the 10 bytes, and then I will call again the same function, HL underscore SPI underscore transmit and receive now with the interrupt, then I will here use the HSPI one first buffer on the transmit buffer, then the buffer for transmitting, then the buffer for receiving, then I want to send 10 bytes, then this is everything from this, but now I also need to search for the callbacks, then the callbacks like before, the callbacks will be in in drivers, in drivers I search for the SPI, and I can like before search for the underscore underscore weak, first I usually search for the MSP in it and in it, and then I have here transmit complete callback, receive callback and transmit and receive complete callback, then I will use this one because I'm using this mode, then I will put this into my main, I for sure put here my blocking vial, famous vial one, and I here change the optimization in the project option, here I will change the optimization to level zero, to allow me see all my buffers, to be sure that the compiler is not so nice that he delete, but on order my code, then now I can go into the back, we can see what will happen, here I will start, sorry, I will check if I have here my back point, yes I'm here, let's start again, I have my back point, I can look into my watch and buffer to watch, I put it for sure here, if I really receive the data which I wanted and it seems that the data are correct, the eight to the 31, then it's working, also be careful on the speed which you are sending and receiving, that the interrupt can be can be blocking, some kind that can also overrun, if you have no time to clear all the buffers then be careful on this, but this problem can solved on the end to DMA, then now we look on the example with DMA.