generated from hulk/gd32e23x_template
	add calculate CRC function
This commit is contained in:
		| @@ -12,6 +12,7 @@ | |||||||
| #include <string.h> | #include <string.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <sys/types.h> | ||||||
|  |  | ||||||
| #define RS485_RCU            RCU_USART0 | #define RS485_RCU            RCU_USART0 | ||||||
| #define RS485_GPIO_RCU       RCU_GPIOA | #define RS485_GPIO_RCU       RCU_GPIOA | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								src/rs485.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								src/rs485.c
									
									
									
									
									
								
							| @@ -53,3 +53,18 @@ void process_command(char *cmd) { | |||||||
|         printf("Invalid Command!\r\n"); |         printf("Invalid Command!\r\n"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | uint8_t calculate_crc(uint8_t package_header[3], uint8_t package_data[], size_t data_length) { | ||||||
|  |     uint8_t crc = 0; | ||||||
|  |  | ||||||
|  |     /* Calculate CRC for header */ | ||||||
|  |     for (int i = 1; i < 3; i++) { | ||||||
|  |         crc += package_header[i]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     for (size_t i = 0; i < data_length; i++) { | ||||||
|  |         crc += package_data[i]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return (uint8_t)(crc & 0xFF); | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user