Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 29.08.2019
Сообщений: 17

ESP32 проблемы с передачей массива более 127 байт по шине I2C

13.08.2020, 09:49. Показов 1483. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, в данном коде на ESP32 по i2с можно передать только 127 байт из массивов Program_Data_IC_1 и Param_Data_IC_1, подскажите где ошибка в коде, т.к. этот код рабочий на AVR, и на STM32 с подключенной библиотекой SlowSoftI2CMaster. Передача побайтная пока не достигнет dataLength, в этом цикле:

C
1
2
for (int i=0; i<dataLength; i++) {
      Wire.write(pgm_read_byte_near(pdata + i));
дело в ESP32, ограничении буфера библиотеки Wire (32 байта), или нужно передавать блоками по 127 байт?


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <Wire.h>
void setup() {
  IC_Default_Download();
}
 
void SIGMA_WRITE_REGISTER_BLOCK(byte IC_address, word subAddress, int dataLength, byte pdata[]) {
  
  Wire.beginTransmission(IC_address);
  uint8_t addressLowByte = subAddress & 0xff;
  uint8_t addressHighByte = (subAddress >> 8);
 
  Wire.write(addressHighByte); 
  Wire.write(addressLowByte); 
 
  if (dataLength < 50 ) {
    for (int i=0; i<dataLength; i++) { 
      Wire.write(pdata[i]); //write data bytes
    }
  }
  else { 
    for (int i=0; i<dataLength; i++) {
      Wire.write(pgm_read_byte_near(pdata + i)); //write data bytes for param and program data
    }
  }
  Wire.endTransmission();
}
 
void IC_Default_Download() {
 
 /********************************************************************************************************/
  #define DEVICE_ADDR_IC_1                                           0x68  
  #define REG_COREREGISTER_IC_1_ADDR                                 0x081C
  #define PROGRAM_ADDR_IC_1                                          0x0400
  #define PARAM_ADDR_IC_1                                            0x0000                   
 /******************************************************************************************************/
  #define REG_COREREGISTER_IC_1_BYTE                      2
  #define R3_HWCONFIGURATION_IC_1_SIZE                    24
  #define PROGRAM_SIZE_IC_1                               5120
  #define PARAM_SIZE_IC_1                                 4096
/********************************************************************************************************/
  uint8_t R0_COREREGISTER_IC_1_Default[REG_COREREGISTER_IC_1_BYTE] = {0x00, 0x18};
  uint8_t R3_HWCONFIGURATION_IC_1_Default[R3_HWCONFIGURATION_IC_1_SIZE] = {0x00, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01};
  uint8_t R4_COREREGISTER_IC_1_Default[REG_COREREGISTER_IC_1_BYTE] = {0x00, 0x1C};
  
static uint8_t Program_Data_IC_1[PROGRAM_SIZE_IC_1] = {
0x00, 0x00, 0x00, 0x00, 0x01, 
0x00, 0x00, 0x00, 0xE8, 0x01, 
0x00, 0x01, 0x08, 0x20, 0x01, 
...........
0x00, 0x00, 0x00, 0x00, 0x01,  
};
 
static uint8_t Param_Data_IC_1[PARAM_SIZE_IC_1] = { 
0x00, 0x00, 0x0D, 0x6F, 
0x00, 0x00, 0x15, 0xF4, 
0x00, 0x00, 0x12, 0x06, 
0x00, 0x00, 0x15, 0xF4, 
0x00, 0x00, 0x13, 0x01, 
0x00, 0x00, 0x16, 0x48, 
........... 
0x00, 0x00, 0x00, 0x00,  
};
 
  SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_COREREGISTER_IC_1_ADDR, REG_COREREGISTER_IC_1_BYTE, R0_COREREGISTER_IC_1_Default );
  SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PROGRAM_ADDR_IC_1, PROGRAM_SIZE_IC_1, (byte*)Program_Data_IC_1 );
  SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, PARAM_ADDR_IC_1, PARAM_SIZE_IC_1, (byte*)Param_Data_IC_1 );
  SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_COREREGISTER_IC_1_ADDR , R3_HWCONFIGURATION_IC_1_SIZE, R3_HWCONFIGURATION_IC_1_Default );
  SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_COREREGISTER_IC_1_ADDR, REG_COREREGISTER_IC_1_BYTE, R4_COREREGISTER_IC_1_Default );
}
 
void loop() {
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.08.2020, 09:49
Ответы с готовыми решениями:

CVAVR. I2C EEPROM более 256 байт
Возможно, где-то есть ответ, но ничего вразумительного не нашел. Нужно подключить I2C EEPROM на 64К к Tiny2313, используется CVAVR. ...

ведущий на шине i2c
Вопрос такой: может ли устройство на шине y2s быть только ведущим и никогда ведомым? например контроллер. и нужен ли ведущему устройству...

Часы на шине I2c
Помогите пожалуйста !Преподаватель задал сделать часы на шине I2c ,вывод на динамическую индикацию.И сказал чтобы кнопки делали следующее:...

3
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
13.08.2020, 17:29
...скорее всего либа сделана по принципу локального буфера, который, возможно, где-то можно в дефайна увеличить в размере. Но может быть это и не возможно - тогда используйте какие-нибудь low-level функции для отправки данных по I2C.
0
0 / 0 / 1
Регистрация: 29.08.2019
Сообщений: 17
13.08.2020, 20:27  [ТС]
Цитата Сообщение от Voland_ Посмотреть сообщение
low-level функции для отправки данных по I2C
А можете привести примеры подобных функций или ткнуть где искать?

Добавлено через 2 часа 31 минуту
Я правильно понимаю что проблема в обертке Wire ArduinoIDE?

Данные по шине i2c ESP32. Выделил конец передачи 127 байт.
Кликните здесь для просмотра всего текста
1.905773500000000,I2C,Setup Write to [h (0x68)] + ACK
1.905991125000000,I2C,'8' (0x08) + ACK
1.906208750000000,I2C,'28' (0x1C) + ACK
1.906426375000000,I2C,'0' (0x00) + ACK
1.906644000000000,I2C,'24' (0x18) + ACK
1.907780125000000,I2C,Setup Write to [h (0x68)] + ACK - начало передачи блока Program_Data_IC_1
1.907997750000000,I2C,'4' (0x04) + ACK
1.908215375000000,I2C,'0' (0x00) + ACK
1.908433000000000,I2C,'0' (0x00) + ACK
1.908650625000000,I2C,'0' (0x00) + ACK
1.908868250000000,I2C,'0' (0x00) + ACK
1.909085875000000,I2C,'0' (0x00) + ACK
1.909303625000000,I2C,'1' (0x01) + ACK
1.909521250000000,I2C,'0' (0x00) + ACK
1.909738875000000,I2C,'0' (0x00) + ACK
1.909956500000000,I2C,'0' (0x00) + ACK
1.910174125000000,I2C,'232' (0xE8) + ACK
1.910391750000000,I2C,'1' (0x01) + ACK
1.910609375000000,I2C,'0' (0x00) + ACK
1.910827000000000,I2C,'1' (0x01) + ACK
1.911044625000000,I2C,'8' (0x08) + ACK
1.911262250000000,I2C,' ' (0x20) + ACK
1.911479875000000,I2C,'1' (0x01) + ACK
1.911697500000000,I2C,'29' (0x1D) + ACK
1.911915125000000,I2C,` (0x60) + ACK
1.912132750000000,I2C,'0' (0x00) + ACK
1.912350375000000,I2C,'226' (0xE2) + ACK
1.912568000000000,I2C,'1' (0x01) + ACK
1.912785625000000,I2C,'0' (0x00) + ACK
1.913003250000000,I2C,\r (0x0D) + ACK
1.913220875000000,I2C,'171' (0xAB) + ACK
1.913438500000000,I2C,' ' (0x20) + ACK
1.913656125000000,I2C,'1' (0x01) + ACK
1.913873750000000,I2C,'0' (0x00) + ACK
1.914091375000000,I2C,'21' (0x15) + ACK
1.914309000000000,I2C,'170' (0xAA) + ACK
1.914526625000000,I2C," (0x22) + ACK
1.914744250000000,I2C,'1' (0x01) + ACK
1.914961875000000,I2C,'0' (0x00) + ACK
1.915179500000000,I2C,'29' (0x1D) + ACK
1.915397125000000,I2C,'169' (0xA9) + ACK
1.915614750000000,I2C," (0x22) + ACK
1.915832375000000,I2C,'1' (0x01) + ACK
1.916050000000000,I2C,'0' (0x00) + ACK
1.916267625000000,I2C,% (0x25) + ACK
1.916485250000000,I2C,'168' (0xA8) + ACK
1.916703000000000,I2C," (0x22) + ACK
1.916920625000000,I2C,'1' (0x01) + ACK
1.917138250000000,I2C,'0' (0x00) + ACK
1.917355875000000,I2C,- (0x2D) + ACK
1.917573500000000,I2C,'167' (0xA7) + ACK
1.917791125000000,I2C," (0x22) + ACK
1.918008750000000,I2C,'1' (0x01) + ACK
1.918226375000000,I2C,'0' (0x00) + ACK
1.918444000000000,I2C,5 (0x35) + ACK
1.918661625000000,I2C,'166' (0xA6) + ACK
1.918879250000000,I2C," (0x22) + ACK
1.919096875000000,I2C,'1' (0x01) + ACK
1.919314500000000,I2C,'0' (0x00) + ACK
1.919532125000000,I2C,= (0x3D) + ACK
1.919749750000000,I2C,'165' (0xA5) + ACK
1.919967375000000,I2C," (0x22) + ACK
1.920185000000000,I2C,'1' (0x01) + ACK
1.920402625000000,I2C,'0' (0x00) + ACK
1.920620250000000,I2C,E (0x45) + ACK
1.920837875000000,I2C,'164' (0xA4) + ACK
1.921055500000000,I2C," (0x22) + ACK
1.921273125000000,I2C,'1' (0x01) + ACK
1.921490750000000,I2C,'0' (0x00) + ACK
1.921708375000000,I2C,M (0x4D) + ACK
1.921926000000000,I2C,'163' (0xA3) + ACK
1.922143625000000,I2C," (0x22) + ACK
1.922361250000000,I2C,'1' (0x01) + ACK
1.922578875000000,I2C,'0' (0x00) + ACK
1.922796500000000,I2C,U (0x55) + ACK
1.923014125000000,I2C,'162' (0xA2) + ACK
1.923231750000000,I2C," (0x22) + ACK
1.923449375000000,I2C,'1' (0x01) + ACK
1.923667000000000,I2C,'0' (0x00) + ACK
1.923884625000000,I2C,] (0x5D) + ACK
1.924102250000000,I2C,'161' (0xA1) + ACK
1.924319875000000,I2C," (0x22) + ACK
1.924537500000000,I2C,'1' (0x01) + ACK
1.924755125000000,I2C,'0' (0x00) + ACK
1.924972750000000,I2C,e (0x65) + ACK
1.925190375000000,I2C,'160' (0xA0) + ACK
1.925408000000000,I2C," (0x22) + ACK
1.925625625000000,I2C,'1' (0x01) + ACK
1.925843250000000,I2C,'0' (0x00) + ACK
1.926060875000000,I2C,m (0x6D) + ACK
1.926278500000000,I2C,'159' (0x9F) + ACK
1.926496125000000,I2C," (0x22) + ACK
1.926713750000000,I2C,'1' (0x01) + ACK
1.926931375000000,I2C,'0' (0x00) + ACK
1.927149000000000,I2C,u (0x75) + ACK
1.927366625000000,I2C,'158' (0x9E) + ACK
1.927584250000000,I2C," (0x22) + ACK
1.927802000000000,I2C,'1' (0x01) + ACK
1.928019625000000,I2C,'0' (0x00) + ACK
1.928237250000000,I2C,} (0x7D) + ACK
1.928454875000000,I2C,'157' (0x9D) + ACK
1.928672500000000,I2C," (0x22) + ACK
1.928890125000000,I2C,'1' (0x01) + ACK
1.929107750000000,I2C,'0' (0x00) + ACK
1.929325375000000,I2C,'133' (0x85) + ACK
1.929543000000000,I2C,'156' (0x9C) + ACK
1.929760625000000,I2C," (0x22) + ACK
1.929978250000000,I2C,'1' (0x01) + ACK
1.930195875000000,I2C,'0' (0x00) + ACK
1.930413500000000,I2C,'141' (0x8D) + ACK
1.930631125000000,I2C,'155' (0x9B) + ACK
1.930848750000000,I2C," (0x22) + ACK
1.931066375000000,I2C,'1' (0x01) + ACK
1.931284000000000,I2C,'0' (0x00) + ACK
1.931501625000000,I2C,'149' (0x95) + ACK
1.931719250000000,I2C,'154' (0x9A) + ACK
1.931936875000000,I2C," (0x22) + ACK
1.932154500000000,I2C,'1' (0x01) + ACK
1.932372125000000,I2C,'0' (0x00) + ACK
1.932589750000000,I2C,'157' (0x9D) + ACK
1.932807375000000,I2C,'153' (0x99) + ACK
1.933025000000000,I2C," (0x22) + ACK
1.933242625000000,I2C,'1' (0x01) + ACK
1.933460250000000,I2C,'0' (0x00) + ACK
1.933677875000000,I2C,'165' (0xA5) + ACK
1.933895500000000,I2C,'152' (0x98) + ACK
1.934113125000000,I2C," (0x22) + ACK
1.934330750000000,I2C,'1' (0x01) + ACK
1.934548375000000,I2C,'0' (0x00) + ACK
1.934766000000000,I2C,'173' (0xAD) + ACK
1.934983625000000,I2C,'151' (0x97) + ACK
1.935201250000000,I2C," (0x22) + ACK
1.935418875000000,I2C,'1' (0x01) + ACK
1.935636500000000,I2C,'0' (0x00) + ACK - конец передачи 127 байт
1.936612500000000,I2C,Setup Write to [h (0x68)] + ACK - начало передачи блока Param_Data_IC_1
1.936830125000000,I2C,'0' (0x00) + ACK
1.937047750000000,I2C,'0' (0x00) + ACK
1.937265375000000,I2C,'0' (0x00) + ACK
1.937483000000000,I2C,'0' (0x00) + ACK
1.937700625000000,I2C,\r (0x0D) + ACK
1.937918250000000,I2C,o (0x6F) + ACK
1.938135875000000,I2C,'0' (0x00) + ACK
1.938353500000000,I2C,'0' (0x00) + ACK
1.938571125000000,I2C,'21' (0x15) + ACK
1.938788750000000,I2C,'244' (0xF4) + ACK
1.939006375000000,I2C,'0' (0x00) + ACK
1.939224000000000,I2C,'0' (0x00) + ACK
1.939441625000000,I2C,'18' (0x12) + ACK
1.939659375000000,I2C,'6' (0x06) + ACK
1.939876875000000,I2C,'0' (0x00) + ACK
1.940094625000000,I2C,'0' (0x00) + ACK
1.940312250000000,I2C,'21' (0x15) + ACK
1.940529875000000,I2C,'244' (0xF4) + ACK
1.940747375000000,I2C,'0' (0x00) + ACK
1.940965125000000,I2C,'0' (0x00) + ACK
1.941182750000000,I2C,'19' (0x13) + ACK
1.941400375000000,I2C,'1' (0x01) + ACK
1.941618000000000,I2C,'0' (0x00) + ACK
1.941835625000000,I2C,'0' (0x00) + ACK
1.942053250000000,I2C,'22' (0x16) + ACK
1.942270875000000,I2C,H (0x48) + ACK
1.942488500000000,I2C,'0' (0x00) + ACK
1.942706125000000,I2C,'0' (0x00) + ACK
1.942923750000000,I2C,'19' (0x13) + ACK
1.943141375000000,I2C,U (0x55) + ACK
1.943359000000000,I2C,'0' (0x00) + ACK
1.943576625000000,I2C,'0' (0x00) + ACK
1.943794250000000,I2C,'22' (0x16) + ACK
1.944011875000000,I2C,H (0x48) + ACK
1.944229500000000,I2C,'0' (0x00) + ACK
1.944447125000000,I2C,'0' (0x00) + ACK
1.944664750000000,I2C,'19' (0x13) + ACK
1.944882375000000,I2C,'169' (0xA9) + ACK
1.945100000000000,I2C,'0' (0x00) + ACK
1.945317625000000,I2C,'0' (0x00) + ACK
1.945535250000000,I2C,'23' (0x17) + ACK
1.945752875000000,I2C,'152' (0x98) + ACK
1.945970500000000,I2C,'0' (0x00) + ACK
1.946188125000000,I2C,'0' (0x00) + ACK
1.946405750000000,I2C,'22' (0x16) + ACK
1.946623375000000,I2C,'240' (0xF0) + ACK
1.946841000000000,I2C,'0' (0x00) + ACK
1.947058625000000,I2C,'0' (0x00) + ACK
1.947276250000000,I2C,'27' (0x1B) + ACK
1.947493875000000,I2C,3 (0x33) + ACK
1.947711500000000,I2C,'0' (0x00) + ACK
1.947929125000000,I2C,'0' (0x00) + ACK
1.948146750000000,I2C,'26' (0x1A) + ACK
1.948364375000000,I2C,7 (0x37) + ACK
1.948582000000000,I2C,'0' (0x00) + ACK
1.948799625000000,I2C,'0' (0x00) + ACK
1.949017250000000,I2C,'28' (0x1C) + ACK
1.949234875000000,I2C,'214' (0xD6) + ACK
1.949452500000000,I2C,'0' (0x00) + ACK
1.949670125000000,I2C,'0' (0x00) + ACK
1.949887750000000,I2C,'26' (0x1A) + ACK
1.950105375000000,I2C,7 (0x37) + ACK
1.950323000000000,I2C,'0' (0x00) + ACK
1.950540625000000,I2C,'0' (0x00) + ACK
1.950758250000000,I2C,'28' (0x1C) + ACK
1.950975875000000,I2C,. (0x2E) + ACK
1.951193500000000,I2C,'0' (0x00) + ACK
1.951411125000000,I2C,'0' (0x00) + ACK
1.951628750000000,I2C,'25' (0x19) + ACK
1.951846375000000,I2C,; (0x3B) + ACK
1.952064000000000,I2C,'0' (0x00) + ACK
1.952281625000000,I2C,'0' (0x00) + ACK
1.952499250000000,I2C,'26' (0x1A) + ACK
1.952716875000000,I2C,'223' (0xDF) + ACK
1.952934500000000,I2C,'0' (0x00) + ACK
1.953152125000000,I2C,'0' (0x00) + ACK
1.953369750000000,I2C,'23' (0x17) + ACK
1.953587500000000,I2C,D (0x44) + ACK
1.953805125000000,I2C,'0' (0x00) + ACK
1.954022750000000,I2C,'0' (0x00) + ACK
1.954240375000000,I2C,'25' (0x19) + ACK
1.954458000000000,I2C,'143' (0x8F) + ACK
1.954675625000000,I2C,'0' (0x00) + ACK
1.954893250000000,I2C,'0' (0x00) + ACK
1.955110875000000,I2C,'23' (0x17) + ACK
1.955328500000000,I2C,'152' (0x98) + ACK
1.955546125000000,I2C,'0' (0x00) + ACK
1.955763750000000,I2C,'0' (0x00) + ACK
1.955981375000000,I2C,'27' (0x1B) + ACK
1.956199000000000,I2C,'218' (0xDA) + ACK
1.956416625000000,I2C,'0' (0x00) + ACK
1.956634250000000,I2C,'0' (0x00) + ACK
1.956851875000000,I2C,'26' (0x1A) + ACK
1.957069500000000,I2C,'223' (0xDF) + ACK
1.957287125000000,I2C,'0' (0x00) + ACK
1.957504750000000,I2C,'0' (0x00) + ACK
1.957722375000000,I2C,'30' (0x1E) + ACK
1.957940000000000,I2C,'205' (0xCD) + ACK
1.958157625000000,I2C,'0' (0x00) + ACK
1.958375250000000,I2C,'0' (0x00) + ACK
1.958592875000000,I2C,'29' (0x1D) + ACK
1.958810500000000,I2C,* (0x2A) + ACK
1.959028125000000,I2C,'0' (0x00) + ACK
1.959245750000000,I2C,'0' (0x00) + ACK
1.959463375000000,I2C,' ' (0x20) + ACK
1.959681000000000,I2C,'29' (0x1D) + ACK
1.959898625000000,I2C,'0' (0x00) + ACK
1.960116250000000,I2C,'0' (0x00) + ACK
1.960333875000000,I2C,'30' (0x1E) + ACK
1.960551500000000,I2C,'205' (0xCD) + ACK
1.960769125000000,I2C,'0' (0x00) + ACK
1.960986750000000,I2C,'0' (0x00) + ACK
1.961204375000000,I2C,! (0x21) + ACK
1.961422000000000,I2C,'192' (0xC0) + ACK
1.961639625000000,I2C,'0' (0x00) + ACK
1.961857250000000,I2C,'0' (0x00) + ACK
1.962074875000000,I2C,' ' (0x20) + ACK
1.962292500000000,I2C,q (0x71) + ACK
1.962510125000000,I2C,'0' (0x00) + ACK
1.962727750000000,I2C,'0' (0x00) + ACK
1.962945375000000,I2C," (0x22) + ACK
1.963163125000000,I2C,h (0x68) + ACK
1.963380625000000,I2C,'0' (0x00) + ACK
1.963598375000000,I2C,'0' (0x00) + ACK
1.963816000000000,I2C,' ' (0x20) + ACK
1.964033625000000,I2C,q (0x71) + ACK
1.964251250000000,I2C,'0' (0x00) + ACK
1.964468875000000,I2C,'0' (0x00) + ACK - конец передачи 127 байт
1.964941375000000,I2C,Setup Write to [h (0x68)] + ACK
1.965159000000000,I2C,'8' (0x08) + ACK
1.965376625000000,I2C,'28' (0x1C) + ACK
1.965594250000000,I2C,'0' (0x00) + ACK
1.965811875000000,I2C,'24' (0x18) + ACK
1.966029500000000,I2C,'8' (0x08) + ACK
1.966247125000000,I2C,'0' (0x00) + ACK
1.966464750000000,I2C,'0' (0x00) + ACK
1.966682375000000,I2C,'0' (0x00) + ACK
1.966900000000000,I2C,'0' (0x00) + ACK
1.967117625000000,I2C,'0' (0x00) + ACK
1.967335250000000,I2C,'0' (0x00) + ACK
1.967552875000000,I2C,'0' (0x00) + ACK
1.967770500000000,I2C,'0' (0x00) + ACK
1.967988125000000,I2C,'0' (0x00) + ACK
1.968205875000000,I2C,'0' (0x00) + ACK
1.968423500000000,I2C,'0' (0x00) + ACK
1.968641125000000,I2C,'0' (0x00) + ACK
1.968858750000000,I2C,'0' (0x00) + ACK
1.969076375000000,I2C,'128' (0x80) + ACK
1.969294000000000,I2C,'0' (0x00) + ACK
1.969511625000000,I2C,'0' (0x00) + ACK
1.969729250000000,I2C,'0' (0x00) + ACK
1.969946875000000,I2C,'0' (0x00) + ACK
1.970164500000000,I2C,'0' (0x00) + ACK
1.970382125000000,I2C,'0' (0x00) + ACK
1.970599750000000,I2C,'1' (0x01) + ACK
1.971065500000000,I2C,Setup Write to [h (0x68)] + ACK
1.971283125000000,I2C,'8' (0x08) + ACK
1.971500750000000,I2C,'28' (0x1C) + ACK
1.971718375000000,I2C,'0' (0x00) + ACK
1.971936000000000,I2C,'28' (0x1C) + ACK

Данные по шине i2c STM32F103 - тут только запись адреса регистра, а передача массива пропущена.
Кликните здесь для просмотра всего текста

Time [s], Analyzer Name, Decoded Protocol Result
1.077462500000000,I2C,Setup Write to [h (0x68)] + ACK
1.077553000000000,I2C,'8' (0x08) + ACK
1.077643000000000,I2C,'28' (0x1C) + ACK
1.077733125000000,I2C,'0' (0x00) + ACK
1.077823125000000,I2C,'24' (0x18) + ACK
1.092790125000000,I2C,Setup Write to [h (0x68)] + ACK - начало передачи блока Program_Data_IC_1
1.092880750000000,I2C,'0' (0x00) + ACK
1.092970750000000,I2C,'1' (0x01) + ACK
- передал неправильный адрес регистра (надо 0x0400) и пропустил массив
1.102896000000000,I2C,Setup Write to [h (0x68)] + ACK - начало передачи блока Param_Data_IC_1
1.102986625000000,I2C,'0' (0x00) + ACK
1.103076625000000,I2C,'0' (0x00) + ACK
- передал адрес регистра и пропустил массив
1.103319625000000,I2C,Setup Write to [h (0x68)] + ACK
1.103410250000000,I2C,'8' (0x08) + ACK
1.103500250000000,I2C,'28' (0x1C) + ACK
1.103590250000000,I2C,'0' (0x00) + ACK
1.103680375000000,I2C,'24' (0x18) + ACK
1.103770375000000,I2C,'8' (0x08) + ACK
1.103860375000000,I2C,'0' (0x00) + ACK
1.103950375000000,I2C,'0' (0x00) + ACK
1.104040375000000,I2C,'0' (0x00) + ACK
1.104130375000000,I2C,'0' (0x00) + ACK
1.104220375000000,I2C,'0' (0x00) + ACK
1.104310500000000,I2C,'0' (0x00) + ACK
1.104400500000000,I2C,'0' (0x00) + ACK
1.104490500000000,I2C,'0' (0x00) + ACK
1.104580500000000,I2C,'0' (0x00) + ACK
1.104670500000000,I2C,'0' (0x00) + ACK
1.104760500000000,I2C,'0' (0x00) + ACK
1.104850500000000,I2C,'0' (0x00) + ACK
1.104940625000000,I2C,'0' (0x00) + ACK
1.105030625000000,I2C,'128' (0x80) + ACK
1.105120625000000,I2C,'0' (0x00) + ACK
1.105210625000000,I2C,'0' (0x00) + ACK
1.105300625000000,I2C,'0' (0x00) + ACK
1.105390625000000,I2C,'0' (0x00) + ACK
1.105480625000000,I2C,'0' (0x00) + ACK
1.105570750000000,I2C,'0' (0x00) + ACK
1.105660750000000,I2C,'1' (0x01) + ACK
1.105883000000000,I2C,Setup Write to [h (0x68)] + ACK
1.105973750000000,I2C,'8' (0x08) + ACK
1.106063750000000,I2C,'28' (0x1C) + ACK
1.106153750000000,I2C,'0' (0x00) + ACK
1.106243750000000,I2C,'28' (0x1C) + ACK
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
14.08.2020, 11:12
Цитата Сообщение от Frostokus Посмотреть сообщение
А можете привести примеры подобных функций или ткнуть где искать?
Ну, вообще искать надо в даташите МК. Можно попробовать позаимствовать SDK. Я не работал с ESP32, но на ESP8266 есть SDK и их тулчейн для программирования. В нем есть все дрова на периферию (опять же, под ESP8266, по аналогии, думаю, для ESP32 тоже есть). С Ардуино я не сталкивался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2020, 11:12
Помогаю со студенческими работами здесь

Несколько устройств на шине I2C
У меня есть акселерометр и гироскоп.Первый должен подключаться через родтягивающие резисторы 10к, гироскоп через 4к7. В фото прилагаю свою...

Проблема с LCD на I2C шине
Подскажите пожалуйста как правильно проинициализировать LCD с контроллером PCF8531. Используется PIC16F877A. Возможно какие-то временные...

До сих пор разбираюсь с передачей через HTTP POST (ESP32)
Тыкаю, тыкаю и никак не пойму, почему ничего не передается? Вот сама передача через HTTP POST if (camClient.connect(postHost,...

Задание адреса датчику на шине I2C
Добрый день! Суть дела - есть желание сделать модуль с некоторым кол-вом датчиков. В том числе и цифровым акселерометром. Пока модуль...

MSSP и I2C+SPI на одной шине
День добрый Скажите, есть ли вообще способ на одном MSSP одновременно использовать устройства I2C и SPI. или только выбор камня с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru