Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //BY EDEN SHEIKO BEFORE CHANGES
- #include "RTG.h"
- char txF = ZERO, rxF = ZERO;
- data_t data;
- #define STRUCT_SIZE_DATA (sizeof(data))
- void print_struct(data_t *ptr);
- void rtg_main() {
- while(TRUE){
- receive_data();
- update_data();
- send_data();
- }
- }
- void send_data() {
- HAL_StatusTypeDef status = HAL_OK;
- int8_t buffer[STRUCT_SIZE_DATA];
- memcpy(buffer,&data,STRUCT_SIZE_DATA);
- for (;;) {
- printf("send_data\r\n");
- status = HAL_UART_Transmit_IT(UART_4, buffer,STRUCT_SIZE_DATA);
- if (status != HAL_OK) {
- printf("Failed HAL_UART_Transmit: %d\n\r", status);
- }
- //while (HAL_UART_GetState(UART_4) != HAL_UART_STATE_READY);
- //while (!txF);
- //txF = 0;
- return; //
- }
- }
- void receive_data() {
- HAL_StatusTypeDef status = HAL_OK;
- for (;;) {
- printf("receive_data\r\n");
- int8_t buffer[STRUCT_SIZE_DATA];
- status = HAL_UART_Receive_IT(UART_4, buffer, STRUCT_SIZE_DATA);
- if (status != HAL_OK) {
- printf("Failed HAL_UART_recivie: %d\n\r", status);
- }
- if(rxF){
- HAL_UART_Receive_IT(UART_4, buffer, STRUCT_SIZE_DATA);
- memcpy(&data,buffer,STRUCT_SIZE_DATA);
- print_struct(&data);
- return;
- rxF = 0;
- }
- HAL_Delay(500);
- }
- }
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { //got info good
- if (UART_4 == huart) {
- HAL_GPIO_TogglePin (GPIOB, GPIO_PIN_14);
- rxF = 1;
- }
- }
- void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { // send data good
- if (UART_4 == huart) {
- txF = 1;
- } else {
- UNUSED(huart);
- }
- }
- uint32_t RNG_GetRandomNumber(void)
- {
- uint32_t random_number;
- if (HAL_RNG_GenerateRandomNumber(&hrng, &random_number) != HAL_OK)
- {
- Error_Handler();
- }
- return random_number;
- }
- void update_data() {
- data.m_x = RNG_GetRandomNumber();
- data.m_y = RNG_GetRandomNumber();
- }
- void print_struct(data_t *ptr) {
- printf("Signal Received: %d\r\n", ptr->m_bit);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement