diff options
author | Paul Selkirk <paul@psgd.org> | 2017-05-02 17:10:02 -0400 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2017-05-02 17:10:02 -0400 |
commit | 1175ff63f2a8c4762692551403862f9f0789aef8 (patch) | |
tree | d7d004e639ffa35296b6c91a64711bcc34f63a9b /stm-rtc.c | |
parent | 716694ae77259e31526a6d64db867ced5c231ced (diff) |
Merge branch 'init_cleanup' into no-rtos
Clean up Makefiles and initialization code.
Diffstat (limited to 'stm-rtc.c')
-rw-r--r-- | stm-rtc.c | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -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); |