|
|
|
|
@ -145,6 +145,7 @@ void USART1_IRQHandler(){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(USART1->ISR & USART_ISR_FE){
|
|
|
|
|
//TODO read rx==0
|
|
|
|
|
USART1->ICR = USART_ICR_FECF;
|
|
|
|
|
//if(rxBufferPos != 514)
|
|
|
|
|
// printf("FE after %d\n",rxBufferPos);
|
|
|
|
|
@ -182,6 +183,27 @@ void DMA1_Channel1_IRQHandler(){
|
|
|
|
|
SEGGER_SYSVIEW_PrintfHost("DMA");
|
|
|
|
|
SEGGER_SYSVIEW_RecordExitISR();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void init_stepper(){
|
|
|
|
|
RCC->IOPENR |= RCC_IOPENR_GPIOBEN;
|
|
|
|
|
RCC->IOPENR |= RCC_IOPENR_GPIOCEN;
|
|
|
|
|
RCC->IOPENR |= RCC_IOPENR_GPIOEEN;
|
|
|
|
|
|
|
|
|
|
// Set to output (00: Input, 01: Output, 10: Alternate function, 11: Analog)
|
|
|
|
|
// PB4 Direction
|
|
|
|
|
GPIOB->MODER &= ~(0x3 << (4 * 2)); // Clear mode bits for PB4
|
|
|
|
|
GPIOB->MODER |= (0x1 << (4 * 2)); // Set mode to output for PB4
|
|
|
|
|
|
|
|
|
|
// PC11 Enable
|
|
|
|
|
GPIOC->MODER &= ~(0x3 << (11 * 2)); // Clear mode bits for PC11
|
|
|
|
|
GPIOC->MODER |= (0x1 << (11 * 2)); // Set mode to output for PC11
|
|
|
|
|
|
|
|
|
|
// PE2 Step
|
|
|
|
|
GPIOE->MODER &= ~(0x3 << (2 * 2)); // Clear mode bits for PE2
|
|
|
|
|
GPIOE->MODER |= (0x1 << (2 * 2)); // Set mode to output for PE2
|
|
|
|
|
|
|
|
|
|
GPIOC->BSRR |= GPIO_BSRR_BS11;
|
|
|
|
|
}
|
|
|
|
|
/* USER CODE END 0 */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -190,9 +212,8 @@ void DMA1_Channel1_IRQHandler(){
|
|
|
|
|
*/
|
|
|
|
|
int main(void)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/* USER CODE BEGIN 1 */
|
|
|
|
|
/* USER CODE END 1 */
|
|
|
|
|
/* USER CODE END 1 */
|
|
|
|
|
|
|
|
|
|
/* MCU Configuration--------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
@ -218,11 +239,13 @@ int main(void)
|
|
|
|
|
MX_GPIO_Init();
|
|
|
|
|
/* USER CODE BEGIN 2 */
|
|
|
|
|
init_UART1_dma();
|
|
|
|
|
init_stepper();
|
|
|
|
|
/* USER CODE END 2 */
|
|
|
|
|
|
|
|
|
|
/* Infinite loop */
|
|
|
|
|
/* USER CODE BEGIN WHILE */
|
|
|
|
|
//HAL_UART_Receive_DMA(&huart1, rxBuffer, BUFFER_SIZE);
|
|
|
|
|
uint16_t cnt = 0;
|
|
|
|
|
while (1)
|
|
|
|
|
{
|
|
|
|
|
printf("buf: ");
|
|
|
|
|
@ -230,6 +253,10 @@ int main(void)
|
|
|
|
|
printf("0x%02X ", rxBuffer[i]);
|
|
|
|
|
printf("\n");
|
|
|
|
|
SEGGER_SYSVIEW_OnIdle();
|
|
|
|
|
if(cnt++ >= 260-rxBuffer[1]){
|
|
|
|
|
cnt = 0;
|
|
|
|
|
GPIOE->ODR ^= GPIO_ODR_OD2;
|
|
|
|
|
}
|
|
|
|
|
/* USER CODE END WHILE */
|
|
|
|
|
|
|
|
|
|
/* USER CODE BEGIN 3 */
|
|
|
|
|
|