LCM — CH32V003 Light Control Module
Light Control Module, I2C slave
Loading...
Searching...
No Matches
lcm_i2c.h
Go to the documentation of this file.
1/********************************** (C) COPYRIGHT *******************************
2 * File Name : lcm_i2c.h
3 * Description : I2C1 slave: приём/передача протокола LCM (FSM + ISR).
4 *********************************************************************************/
5
6#ifndef __LCM_I2C_H
7#define __LCM_I2C_H
8
9#include <stdint.h>
10
11/*********************************************************************
12 * @fn LCM_I2C_Init
13 *
14 * @brief Инициализация I2C1 в режиме slave, 100 kHz, 7-битный адрес.
15 *
16 * @param addr — 7-битный собственный адрес slave (OwnAddress1).
17 *
18 * @details Настраивает PC1 (SDA) / PC2 (SCL) как AF open-drain, программирует
19 * адрес, включает NVIC (I2C1_EV, I2C1_ER) и прерывания EVT|BUF|ERR.
20 */
21void LCM_I2C_Init(uint8_t addr);
22
23/*********************************************************************
24 * @fn LCM_I2C_ArmRead
25 *
26 * @brief Подготовить байт ответа для фазы READ (RepSTART + Addr+R).
27 *
28 * @details Вызывается из обработчика команд (lcm_module.c) после ЛЮБОЙ
29 * команды — вооружает ответ кодом текущей ошибки (0x00 — нет
30 * ошибки), а также явно для GET_ERROR / GET_ID (код ошибки / ID).
31 * Переводит FSM приёма в состояние ARMED_READ; байт будет
32 * отправлен в ISR при следующем ADDR в режиме slave-transmitter.
33 */
34void LCM_I2C_ArmRead(uint8_t byte);
35
36#endif /* __LCM_I2C_H */
void LCM_I2C_Init(uint8_t addr)
Definition lcm_i2c.c:136
void LCM_I2C_ArmRead(uint8_t byte)
Definition lcm_i2c.c:129