добавлен led при отправке по can
This commit is contained in:
parent
366ba99467
commit
7a7f838a4a
37
CANEmu.ioc
37
CANEmu.ioc
@ -22,22 +22,23 @@ Mcu.IP7=USART1
|
|||||||
Mcu.IPNb=8
|
Mcu.IPNb=8
|
||||||
Mcu.Name=STM32F103C(8-B)Tx
|
Mcu.Name=STM32F103C(8-B)Tx
|
||||||
Mcu.Package=LQFP48
|
Mcu.Package=LQFP48
|
||||||
Mcu.Pin0=PC14-OSC32_IN
|
Mcu.Pin0=PC13-TAMPER-RTC
|
||||||
Mcu.Pin1=PC15-OSC32_OUT
|
Mcu.Pin1=PC14-OSC32_IN
|
||||||
Mcu.Pin10=PA14
|
Mcu.Pin10=PA13
|
||||||
Mcu.Pin11=VP_IWDG_VS_IWDG
|
Mcu.Pin11=PA14
|
||||||
Mcu.Pin12=VP_SYS_VS_Systick
|
Mcu.Pin12=VP_IWDG_VS_IWDG
|
||||||
Mcu.Pin13=VP_TIM2_VS_ClockSourceINT
|
Mcu.Pin13=VP_SYS_VS_Systick
|
||||||
Mcu.Pin14=VP_TIM3_VS_ClockSourceINT
|
Mcu.Pin14=VP_TIM2_VS_ClockSourceINT
|
||||||
Mcu.Pin2=PD0-OSC_IN
|
Mcu.Pin15=VP_TIM3_VS_ClockSourceINT
|
||||||
Mcu.Pin3=PD1-OSC_OUT
|
Mcu.Pin2=PC15-OSC32_OUT
|
||||||
Mcu.Pin4=PB0
|
Mcu.Pin3=PD0-OSC_IN
|
||||||
Mcu.Pin5=PA9
|
Mcu.Pin4=PD1-OSC_OUT
|
||||||
Mcu.Pin6=PA10
|
Mcu.Pin5=PB0
|
||||||
Mcu.Pin7=PA11
|
Mcu.Pin6=PA9
|
||||||
Mcu.Pin8=PA12
|
Mcu.Pin7=PA10
|
||||||
Mcu.Pin9=PA13
|
Mcu.Pin8=PA11
|
||||||
Mcu.PinsNb=15
|
Mcu.Pin9=PA12
|
||||||
|
Mcu.PinsNb=16
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F103C8Tx
|
Mcu.UserName=STM32F103C8Tx
|
||||||
@ -72,6 +73,8 @@ PA9.Mode=Asynchronous
|
|||||||
PA9.Signal=USART1_TX
|
PA9.Signal=USART1_TX
|
||||||
PB0.Locked=true
|
PB0.Locked=true
|
||||||
PB0.Signal=GPIO_Output
|
PB0.Signal=GPIO_Output
|
||||||
|
PC13-TAMPER-RTC.Locked=true
|
||||||
|
PC13-TAMPER-RTC.Signal=GPIO_Output
|
||||||
PC14-OSC32_IN.Mode=LSE-External-Oscillator
|
PC14-OSC32_IN.Mode=LSE-External-Oscillator
|
||||||
PC14-OSC32_IN.Signal=RCC_OSC32_IN
|
PC14-OSC32_IN.Signal=RCC_OSC32_IN
|
||||||
PC15-OSC32_OUT.Mode=LSE-External-Oscillator
|
PC15-OSC32_OUT.Mode=LSE-External-Oscillator
|
||||||
@ -111,7 +114,7 @@ ProjectManager.ToolChainLocation=
|
|||||||
ProjectManager.UAScriptAfterPath=
|
ProjectManager.UAScriptAfterPath=
|
||||||
ProjectManager.UAScriptBeforePath=
|
ProjectManager.UAScriptBeforePath=
|
||||||
ProjectManager.UnderRoot=false
|
ProjectManager.UnderRoot=false
|
||||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_TIM2_Init-TIM2-false-HAL-true,4-MX_TIM3_Init-TIM3-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true
|
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_TIM2_Init-TIM2-false-HAL-true,4-MX_TIM3_Init-TIM3-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_CAN_Init-CAN-false-HAL-true,7-MX_IWDG_Init-IWDG-false-HAL-true
|
||||||
RCC.ADCFreqValue=36000000
|
RCC.ADCFreqValue=36000000
|
||||||
RCC.AHBFreq_Value=72000000
|
RCC.AHBFreq_Value=72000000
|
||||||
RCC.APB1CLKDivider=RCC_HCLK_DIV2
|
RCC.APB1CLKDivider=RCC_HCLK_DIV2
|
||||||
|
@ -59,6 +59,9 @@ void wait_exact_ticks(uint16_t target_ticks) {
|
|||||||
|
|
||||||
void CANEmu_SendFrame(CANEmu_HandleTypeDef *canemu) {
|
void CANEmu_SendFrame(CANEmu_HandleTypeDef *canemu) {
|
||||||
if (canemu->bitrate_bps == 0) return;
|
if (canemu->bitrate_bps == 0) return;
|
||||||
|
#ifdef LED_WORKING
|
||||||
|
LED_WORKING(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
form_CAN_bitstream_full(&canemu->header, canemu->data, canemu->errors);
|
form_CAN_bitstream_full(&canemu->header, canemu->data, canemu->errors);
|
||||||
|
|
||||||
@ -80,6 +83,9 @@ void CANEmu_SendFrame(CANEmu_HandleTypeDef *canemu) {
|
|||||||
|
|
||||||
can_tx_set_1(); // Завершаем линию
|
can_tx_set_1(); // Завершаем линию
|
||||||
__enable_irq();
|
__enable_irq();
|
||||||
|
#ifdef LED_WORKING
|
||||||
|
LED_WORKING(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,6 +11,11 @@
|
|||||||
#define CANEMU_TIM_US_TICKS 72 // Для 1 мкс при 72 МГц
|
#define CANEMU_TIM_US_TICKS 72 // Для 1 мкс при 72 МГц
|
||||||
#define CANEMU_TIM_CLOCK_HZ 72000000UL // частота таймера
|
#define CANEMU_TIM_CLOCK_HZ 72000000UL // частота таймера
|
||||||
#define CAN_MIN_PERIOD 20
|
#define CAN_MIN_PERIOD 20
|
||||||
|
#define LED_WORKING(on_off) \
|
||||||
|
do { \
|
||||||
|
if (!on_off) GPIOC->ODR |= (1U << 13); \
|
||||||
|
else GPIOC->ODR &= ~(1U << 13); \
|
||||||
|
} while (0)
|
||||||
// === Макросы управления GPIO ===
|
// === Макросы управления GPIO ===
|
||||||
|
|
||||||
#define can_tx_set_1() (CANEMU_TX_GPIO_PORT->BSRR = (1U << CANEMU_TX_GPIO_PIN))
|
#define can_tx_set_1() (CANEMU_TX_GPIO_PORT->BSRR = (1U << CANEMU_TX_GPIO_PIN))
|
||||||
|
@ -50,9 +50,19 @@ void MX_GPIO_Init(void)
|
|||||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
|
||||||
|
/*Configure GPIO pin Output Level */
|
||||||
|
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : PC13 */
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_13;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PB0 */
|
/*Configure GPIO pin : PB0 */
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_0;
|
GPIO_InitStruct.Pin = GPIO_PIN_0;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user