From 1175ff63f2a8c4762692551403862f9f0789aef8 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Tue, 2 May 2017 17:10:02 -0400 Subject: Merge branch 'init_cleanup' into no-rtos Clean up Makefiles and initialization code. --- stm-rtc.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'stm-rtc.c') diff --git a/stm-rtc.c b/stm-rtc.c index 66e41e8..3118d23 100644 --- a/stm-rtc.c +++ b/stm-rtc.c @@ -32,11 +32,29 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "stm32f4xx_hal.h" +#include "stm-init.h" #include "stm-rtc.h" I2C_HandleTypeDef hi2c_rtc; +/* I2C2 init function (external RTC chip) */ +void rtc_init(void) +{ + hi2c_rtc.Instance = I2C2; + hi2c_rtc.Init.ClockSpeed = 10000; + hi2c_rtc.Init.DutyCycle = I2C_DUTYCYCLE_2; + hi2c_rtc.Init.OwnAddress1 = 0; /* Will operate as Master */ + hi2c_rtc.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c_rtc.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED; + hi2c_rtc.Init.OwnAddress2 = 0; + hi2c_rtc.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED; + hi2c_rtc.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED; + + if (HAL_I2C_Init(&hi2c_rtc) != HAL_OK) { + Error_Handler(); + } +} + HAL_StatusTypeDef rtc_device_ready(uint16_t i2c_addr) { return HAL_I2C_IsDeviceReady (&hi2c_rtc, i2c_addr, 10, 1000); -- cgit v1.2.3