Micro-controllers, wireless transmission and database
This project assumes you have already installed STM32CubeIDE. You need to have previously done a basic blink sketch with blue-pill using STM32CubeIDE. I have made a complete video from installing STM32CubeIDE to LED blink program. You can watch it by clicking this link. https://www.youtube.com/watch?v=kXg467nVd_A
Click connectivity --> Click I2C1
For I2C select I2C
/* USER CODE BEGIN 0 */ uint8_t PCF7584read8() { uint8_t value; HAL_I2C_Master_Receive(&hi2c1, 0x40, (uint8_t*)&value, 1, 100); return value; } uint8_t PCF7584read(uint8_t pin) { uint8_t value; value = PCF7584read8(); return (value & (1 << pin)) > 0; } void PCF7584write8(uint8_t value) { HAL_I2C_Master_Transmit(&hi2c1, 0x40, (uint8_t*)&value, 1, 100); } void PCF7584write(uint8_t pin, uint8_t value) { uint8_t readValue; readValue = PCF7584read8(); if (value == 0) { readValue &= ~(1 << pin); } else { readValue |= (1 << pin); } PCF7584write8(readValue); } void PCF7584toggle(uint8_t pin) { uint8_t mask = (1 << pin); uint8_t readValue = PCF7584read8(); readValue ^= mask; PCF7584write8(readValue); } /* USER CODE END 0 */ /* USER CODE BEGIN WHILE */ while (1) { PCF7584write(0, 1); HAL_Delay(350); PCF7584write(0, 0); PCF7584write(1, 1); HAL_Delay(350); PCF7584write(1, 0); PCF7584write(2, 1); HAL_Delay(350); PCF7584write(2, 0); PCF7584write(3, 1); HAL_Delay(350); PCF7584write(3, 0); PCF7584write(4, 1); HAL_Delay(350); PCF7584write(4, 0); PCF7584write(5, 1); HAL_Delay(350); PCF7584write(5, 0); PCF7584write(6, 1); HAL_Delay(350); PCF7584write(6, 0); PCF7584write(7, 1); HAL_Delay(350); PCF7584write(7, 0); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */