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
*/
21
void
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
*/
34
void
LCM_I2C_ArmRead
(uint8_t
byte
);
35
36
#endif
/* __LCM_I2C_H */
LCM_I2C_Init
void LCM_I2C_Init(uint8_t addr)
Definition
lcm_i2c.c:136
LCM_I2C_ArmRead
void LCM_I2C_ArmRead(uint8_t byte)
Definition
lcm_i2c.c:129
User
lcm_i2c.h
Generated by
1.11.0