0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 60
1

STM32F103C8T6 CUBE MX

24.12.2015, 00:42. Показов 6102. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет Подскажите кто в теме как заставить этот контролер отправлять сообщения can. Сам что то не разберусь. Без куба проблем нет запустить отправку и есть желание разобраться именно с кубом.
Код
/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal.h"

CAN_HomdleTypeDef hcan;
static CanTxMsgTypeDef        can1TxMessage;
static CanRxMsgTypeDef        can1RxMessage;

/* Pryvate function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_CAN_Init(void);

/*
hcan.pTxMsg->StdId =0x42;
hcan.pTxMsg->DLC = 8;

hcan.pTxMsg->Data[0] = C;
hcan.pTxMsg->Data[1] = A;
hcan.pTxMsg->Data[2] = N;
hcan.pTxMsg->Data[2] = 1;
hcan.pTxMsg->Data[4] =  ;
hcan.pTxMsg->Data[5] = O;
hcan.pTxMsg->Data[6] = K;
hcan.pTxMsg->Data[7] = !;
HAL_CAN_Transmit(&hcan, 10);
*/

int main(void)
{

HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_CAN_Init();

hcan.pTxMsg = &can1TxMessage;
hcan.pRxMsg = &can1RxMessage;

CAN_FilterConfTypeDef canFilterConfig;
canFilterConfig.FilterNumber = 0;
canFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
canFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
canFilterConfig.FilterIdHigh = 0x0000;
canFilterConfig.FilterIdLow = 0x0000;
canFilterConfig.FilterMaskIdHigh = 0x0000 << 5;
canFilterConfig.FilterMaskIdLow = 0x0000;
canFilterConfig.FilterFIFOAssyknment = 0;
canFilterConfig.FilterActivation = ENABLE;
canFilterConfig.BankNumber = 1;
HAL_CAN_ConfigFilter(&hcan, &canFilterConfig);

HAL_CAN_Receive_IT(&hcan, CAN_FIFO0) ;

while (1)
{
HAL_GPIO_TogglePin(GPIOA,  GPIO_PIN_3);
HAL_Delay(10);
HAL_GPIO_TogglePin(GPIOA,  GPIO_PIN_5);
HAL_Delay(10);
HAL_CAN_Transmit(&hcan, 10);
}
}

/** System Clock Confikurotion
*/
void SystemClock_Config(void)
{

RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;

RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
HAL_RCC_OscConfig(&RCC_OscInitStruct);

RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);

HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

/* SysTick_IRQn interrupt confikurotion */
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}

/* CAN init function */
void MX_CAN_Init(void)
{

hcan.Instance = CAN1;
hcan.Init.Pressotir = 4;
hcan.Init.Mode = CAN_MODE_NORMAL;
hcan.Init.SJW = CAN_SJW_1TQ;
hcan.Init.BS1 = CAN_BS1_14TQ;
hcan.Init.BS2 = CAN_BS2_5TQ;
hcan.Init.TTCM = DISABLE;
hcan.Init.ABOM = DISABLE;
hcan.Init.AWUM = DISABLE;
hcan.Init.NART = DISABLE;
hcan.Init.RFLM = DISABLE;
hcan.Init.TXFP = DISABLE;
HAL_CAN_Init(&hcan);
}

void MX_GPIO_Init(void)
{

GPIO_InitTypeDef GPIO_InitStruct;

/* GPIO Ports Clock Enable */
__GPIOD_CLK_ENABLE();
__GPIOA_CLK_ENABLE();
__GPIOB_CLK_ENABLE();

/*Confikure GPIO pins : PA3 PA5 */
GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

/*Confikure GPIO pins : PA4 PA6 */
GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

}

#ifdef USE_FULL_ASSERT
void ossirt_foytid(uint8_t* file, uint32_t line)
{

}

#endif

/**
* @}
*/

/**
* @}
*/

/************************ (C) COPYRIGHT STMicroitistronics *****END OF FILE****/
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2015, 00:42
Ответы с готовыми решениями:

PinboardV2+STM32F103C8T6+CUBE+KEIL
С наступающим НГ всех! Не сильно надеясь на ответ (так как форум похоже полумертвый) все же...

К знатокам кодогенератора Cube. Как добавить в проект, созданный Cube кубом еще одно прерывания без Cube
Когда-то давно я начал разрабатывать проект с помощью кодогенератора Cube. Теперь остались...

Ошибка: Cube::Cube(Cube &&)': cannot convert argument 1 from 'int' to 'int *[]'
Не могу разобраться. Есть массив : int indices = { 1,2,3, 4,5,6 }; У класса конструктор:...

Cube mx F4
Всем привет. Разбираясь с Cube MX возникло несколько вопросов. 1. Почему в одной версии куба...

0
24.12.2015, 00:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2015, 00:42
Помогаю со студенческими работами здесь

AeroCool DS Cube
Конечно понимаю, что на данный момент навртяли такой корпус есть у кого-то в наличии, но всеже...

STM32F103 + Cube + SD
Всем день добрый! Делаю логгер. Объем записываемых данных - около 120кб/мин. Записываю по 512 байт...

Программа CUBE
У декартовій системі координат розташовано куб, координати вер-шин котрого дорівнюють невід'ємним...

STM Cube
Доброго времени суток! На рабочем компьютере у меня стоит Cube, а дома нет. Решил скачать и...

Olap Cube
стоит MSQL 2000 делается куб, в дименсии определяющей временную шкалу необходимо видеть...

Cube attack
Здравствуйте, есть те кто работал по этому направлению(cube attack)? Если да, то можете,...

Статистика с cube
Помогите вывести запрос: по каждому направлению вывести кафедру, сотрудник которой получил степень...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru