ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
542109 Топик полностью
Nikolay801_ (26.08.2014 11:43, просмотров: 197) ответил Argon на Угу, сенкс! А не в курсе, в настройке фильтров зачем сдвиг маски/ID на 5 бит влево? В найденных примерах так, а в даташитах не могу найти ссылку на это.
поехали дальше, что тут налепили эстешники. в общем почти повторяет кеновскую спецификацию. Старшие биты - стандартный идентификатор/ старшая часть расширенного, дальше остаток расширенного идентификатора и внизу служебные биты. Если передается стандартное сообщение, то идентификатор сдвигается на 21 позицию, если расширенный, то на 3. Где ты взял 5 я не знаю. Внизу 3 младших бита служебных бита и если идентификатор не сдвигать, то они испортятся. Кстати, я фильтрацию не использую. CAN_FilterInitStructure.CAN_FilterNumber = 0; CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; CAN_FilterInit(&CAN_FilterInitStructure); CAN_SlaveStartBank(1); CAN_FilterInitStructure.CAN_FilterNumber = 1; CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; CAN_FilterInit(&CAN_FilterInitStructure); принимаю все сообщения, в программе разбираю, что мое, а что нет.
image
Будь ты проклят, Перри-Утконос!