| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
CRC16 Modbus отличие
21.05.2021, 10:43
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 03.12.2004
Сообщений: 1,311
Сказал спасибо: 353
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
|
Re: CRC16 Modbus отличие
pambaru, спасибо. А вот все таки по какому полиному считается Этот CRC?
|
|
|
|
21.05.2021, 11:01
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 24.03.2007
Сообщений: 1,394
Сказал спасибо: 85
Сказали Спасибо 672 раз(а) в 392 сообщении(ях)
|
Re: CRC16 Modbus отличие
Сообщение от vladh
|
|
А вот все таки по какому полиному считается Этот CRC?
|
На modbus.org написано:
Generating polynomial = 1 + x2 + x15 + x16
https://modbus.org/docs/Modbus_over_...line_V1_01.pdf
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо pambaru за это сообщение:
|
|
|
21.05.2021, 11:09
|
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 21
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 4 сообщении(ях)
|
Re: CRC16 Modbus отличие
unsigned int modbus_crc16(void *adr, unsigned char len)
{
unsigned char *pcBlock;
unsigned int crc, t;
unsigned char i;
crc=0xFFFF; pcBlock=adr;
while (len--)
{
t=*pcBlock++;crc=crc^t;
for (i=0;i‹8;i++) {if (crc&0x0001) {crc=crc››1;crc=crc^0xA001;} else crc=crc››1;}
}
return crc;
}
это в CodeVision. указатель pcBlock для указания компилятору что тип данных char (т.е. 1 байт)
adr - указатель на объект (строка, структура и тд, т.е. адрес начала объекта в памяти)
len - размер объекта в байтах (напр sizeof(МояМегаПосылка))
для отладки мне понравился arOPC.
|
|
|
|
21.05.2021, 11:33
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 03.12.2004
Сообщений: 1,311
Сказал спасибо: 353
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
|
Re: CRC16 Modbus отличие
Всем огромное спасибо. Открылись у меня глаза. Увидел Солнце!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:42.
|
|