STM32f2 & can (maska)
Jan Waclawek
konfera na efton.sk
Pondělí Leden 11 16:00:48 CET 2016
Bez toho aby som co len tusil co je maska v CAN, a s tym ze CubeMX sa
nemienim dotknut ani palicou a Cube mi je z hlbky duse odporny, jeden
rychly kuk do
[STM32Cube_FW_F4_V1.4.0]\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_can.h
:
typedef struct
{
[...]
uint32_t FilterMode; /*!< Specifies the filter mode to be
initialized.
This parameter can be a value of
@ref CAN_filter_mode */
[...]
}CAN_FilterConfTypeDef;
No a F2 sa od F4 v periferiach nelisi, ci?
wek
----- Original Message ---------------
>Ahoj,
> mám vygenerovaný projekt z CUBE a rozběhaný CAN. Problém je, µe pokud se mu cokoliv jiného neµ nulu pokusím dát do
>nastavení masky, tak mi to nepřijme CAN paket. Neví někdo, jestli je to vlastnost nebo něco dělám chybně?
>
>Obe±el jsem to tak, µe kontroluji CAN ID při příjmu, v tomto projektu to nevadí. Ale tak nějak je mi to přijde ... nepěkné
>:-).
>
>
>
>#define CAN_ID_BASE ((uint32_t)0x0AAA0100u)
>#define CAN_RX_MASK ((uint32_t)0x1FFFFFC0u)
>#define CAN_ID_MASTER_BIT ((uint32_t)0x00001000u)
>
>
>void
>cancomInit(uint8_t CardId)
>{
> cancomCardId_u8 = CardId;
>
> /* can filter configuration */
> cancomTx_s.StdId = 0u;
> cancomTx_s.ExtId = CAN_ID_BASE | CAN_ID_MASTER_BIT | cancomCardId_u8;
> cancomTx_s.IDE = CAN_ID_EXT;
> cancomTx_s.RTR = CAN_RTR_DATA;
> cancomTx_s.DLC = 8u;
>
> hcan1.pTxMsg = &cancomTx_s;
> hcan1.pRxMsg = &cancomRx_s;
> /* CAN RX filter - bank 0 */
> CAN_FilterConfTypeDef sFilterConfig =
> {
> .FilterScale = CAN_FILTERSCALE_32BIT,
> .FilterActivation = ENABLE,
> .BankNumber = 0u, // always 0 - no can2 (slave (dual can)
> .FilterNumber = 0u,
> .FilterFIFOAssignment = 0u,
> .FilterIdHigh = ((CAN_ID_BASE | CAN_ID_MASTER_BIT) >> 16),
> .FilterIdLow = ((CAN_ID_BASE | CAN_ID_MASTER_BIT) & 0xFFFFu),
> .FilterMaskIdHigh = 0u,
> .FilterMaskIdLow = 0u,
> // Mask not works ??
> //.FilterMaskIdHigh = (CAN_RX_MASK >> 16),
> //.FilterMaskIdLow = (CAN_RX_MASK & 0xFFFFu),
> };
> HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
>}
>
Daląí informace o konferenci Hw-list