Example
tuhuuduc
c_cpp
a year ago
2.9 kB
5
Indexable
##GPIO #include "main.h" void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { // HAL initialization HAL_Init(); // Configure the system clock SystemClock_Config(); // Initialize all configured peripherals MX_GPIO_Init(); // Main loop while (1) { // Toggle the GPIO pin (PA5 in this case) HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); // Insert delay HAL_Delay(500); } } void SystemClock_Config(void) { // Configure the system clock // This code is generated by STM32CubeMX and should be left unchanged RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 1; RCC_OscInitStruct.PLL.PLLN = 8; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7; RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2; RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) { Error_Handler(); } } static void MX_GPIO_Init(void) { // GPIO Ports Clock Enable __HAL_RCC_GPIOA_CLK_ENABLE(); // Configure GPIO pin output level HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); // Configure GPIO pin: PA5 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } void Error_Handler(void) { // Error handler while (1) { } } ## ##EEPROM #include <EEPROM.h> #define DEVICE_ID_ADDRESS 0 // Address in EEPROM where the device ID is stored void setup() { Serial.begin(9600); // Check if the EEPROM contains a valid device ID byte deviceID = EEPROM.read(DEVICE_ID_ADDRESS); if (deviceID == 0xFF) { // Assuming 0xFF indicates uninitialized EEPROM deviceID = 42; // Assign a default device ID EEPROM.write(DEVICE_ID_ADDRESS, deviceID); } Serial.print("Device ID: "); Serial.println(deviceID); } void loop() { // Main code loop }
Editor is loading...
Leave a Comment