Error handling for PCA9535D?
This commit is contained in:
		@ -28,6 +28,7 @@
 | 
				
			|||||||
#define PCA_I2C_BASE_ADDRESS 0x40
 | 
					#define PCA_I2C_BASE_ADDRESS 0x40
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void PCA9535_init(I2C_HandleTypeDef* hi2c, uint8_t subadr);
 | 
					void PCA9535_init(I2C_HandleTypeDef* hi2c, uint8_t subadr);
 | 
				
			||||||
 | 
					HAL_StatusTypeDef PCA9535_writeRegister(uint8_t reg, uint8_t data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void PCA9535_setGPIOPinDirection(uint8_t Port, uint8_t pin, uint8_t state);
 | 
					void PCA9535_setGPIOPinDirection(uint8_t Port, uint8_t pin, uint8_t state);
 | 
				
			||||||
void PCA9535_setGPIOPinOutput(uint8_t Port, uint8_t pin, uint8_t state);
 | 
					void PCA9535_setGPIOPinOutput(uint8_t Port, uint8_t pin, uint8_t state);
 | 
				
			||||||
 | 
				
			|||||||
@ -31,8 +31,23 @@ void PCA9535_init(I2C_HandleTypeDef* hi2c, uint8_t subadr) {
 | 
				
			|||||||
  pcai2c = hi2c;
 | 
					  pcai2c = hi2c;
 | 
				
			||||||
  deviceadr = PCA_I2C_BASE_ADDRESS | (subadr << 1);
 | 
					  deviceadr = PCA_I2C_BASE_ADDRESS | (subadr << 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  uint8_t initalizationconfig[7] = {0x02, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF};
 | 
					  if (PCA9535_writeRegister(2, 0) != HAL_OK) {
 | 
				
			||||||
  HAL_I2C_Master_Transmit(pcai2c, deviceadr, initalizationconfig, 7, 1000);
 | 
					    Error_Handler();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (PCA9535_writeRegister(3, 0) != HAL_OK) {
 | 
				
			||||||
 | 
					    Error_Handler();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (PCA9535_writeRegister(6, 0) != HAL_OK) {
 | 
				
			||||||
 | 
					    Error_Handler();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (PCA9535_writeRegister(7, 0) != HAL_OK) {
 | 
				
			||||||
 | 
					    Error_Handler();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HAL_StatusTypeDef PCA9535_writeRegister(uint8_t reg, uint8_t data) {
 | 
				
			||||||
 | 
					  uint8_t dataarray[2] = {reg, data};
 | 
				
			||||||
 | 
					  return HAL_I2C_Master_Transmit(pcai2c, deviceadr, dataarray, 2, 1000);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void PCA9535_setGPIOPinDirection(uint8_t Port, uint8_t pin, uint8_t state) {
 | 
					void PCA9535_setGPIOPinDirection(uint8_t Port, uint8_t pin, uint8_t state) {
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user