Files
@ 2e9e37796ebc
Branch filter:
Location: FeatherHAB/wsprhab/src/i2c.c - annotation
2e9e37796ebc
1.2 KiB
text/plain
Switch to newlib nano. Untested on actual hardware. Saves flash/ram.
0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0dd5c923fdea 0dd5c923fdea 0d9900312165 0d9900312165 0d9900312165 0dd5c923fdea 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 0d9900312165 1ecaddb549ab 1ecaddb549ab 1ecaddb549ab 1ecaddb549ab 1ecaddb549ab 1ecaddb549ab 1ecaddb549ab 0d9900312165 0dd5c923fdea 0d9900312165 0d9900312165 0d9900312165 | //
// I2C: Initialize I2C peripheral and return a reference to the port
//
#include "i2c.h"
#include "gpio.h"
I2C_HandleTypeDef hi2c1;
void i2c_init(void)
{
__GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
__I2C1_CLK_ENABLE();
hi2c1.Instance = I2C1;
hi2c1.Init.Timing = 0x2000090E;
hi2c1.Init.OwnAddress1 = 0;
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
hi2c1.Init.OwnAddress2 = 0;
hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
HAL_I2C_Init(&hi2c1);
HAL_I2CEx_AnalogFilter_Config(&hi2c1, I2C_ANALOGFILTER_ENABLED);
}
void i2c_deinit(void)
{
HAL_I2C_DeInit(&hi2c1);
__I2C1_CLK_DISABLE();
}
// Get pointer to I2C port
I2C_HandleTypeDef* i2c_get(void)
{
return &hi2c1;
}
|