В некоторых модулях VBCores есть встроенный EEPROM AT24С64CN, для работы с которым предназначена данная библиотека
В соответствии со схемой подключения EEPROM имеет I2C-адрес 0b1010zyx
, где значения x, y и z определяются тем, как подтянуты пины A0, A1 и A2. Если пин подтянут к земле, соответствующий бит адреса равен нулю, если к "плюсу", то соответствующий бит адреса равен 1, в нашем случае все пины подтянуты к земле, и адрес устройства 0b1010000
.
Скачайте файлы Core/Src/at24_eeprom.c
в Core/Src/
, а файл Core/Inc/at24_eeprom.h
в Core/Inc/
, вашего проекта, сконфигурируйте I2C следующим образом:
включите прерывания для I2C
В библиотеке реализованы 4 функции
at24_isConnected()
- проверяет, есть ли связь с EEPROM, и если есть возвращаетTrue
, если нетFalse
at24_write(uint16_t address, uint8_t *data, size_t len, uint32_t timeout)
address
- адрес в EEPROM. Адресация в данной библиотеке идет побайтово. Для записи в 0x0001-й байтaddress = 0х0001
data
- буфер данных, которые будут записаны в EEPROMlen
- количество байт для записи из буфераtimeout
- в милисекундахat24_read(uint16_t address, uint8_t *data, size_t len, uint32_t timeout)
address
- адрес в EEPROM. Адресация в данной библиотеке идет побайтово. Для чтения из 0x0003-й байтаaddress = 0х0003
data
- буфер в который будет записаны прочитанные из EEPROM данныеlen
- количество байт для записи в буфераtimeout
- в милисекундахat24_eraseChip()
- стирает все данные из EEPROM, и если удачно возвращаетTrue
, если нетFalse
В качестве примера реализованы функции jc_read , jc_write, которые записывают и читают созданную структуру.