как выяснилось, проблема не в этой функции (0x10), а в адресе регистров, в которые нужно писать. У меня регистры (переменные типа
int) упакованы в структуру :
Код
typedef struct
{
int NumSensorsDS;
int TemperatureTC[NUM_SENSORS];
int Parameter[2][NUM_SENSORS];
int Temperature[2];
int NumSensorsTC;
int Cable;
int Average;
int Data;
long Accum;
}TValue;
В регистры Cable, Average записываются значения и отдается нормальный ответ от устройства при помощи ф-ций
PresetSingleRegister,PresetMultipleRegisters, а если указать адрес записываемого регистра в NumSensorsTC, то запрос остается без ответа. Почему, не пойму никак?..
PS. Callback-функции написаны и работают.
PS2. Вроде нашел... В Callback-функции использую ф-ции записи во флеш.
Код
WriteFlashByte(FLASH_PARAMETER_LOCATION + 2 + 1, *(pucRegBuffer));
WriteFlashByte(FLASH_PARAMETER_LOCATION + 2, *(pucRegBuffer + 1));
Если закоментировать эти строки, то ответ нормальный появляется. Наверно, правильно сделать так : в колбэк-функции устанавливать флаг, а в главном цикле по этому флагу писать во флеш.