dma #1
29
Src/main.c
29
Src/main.c
@@ -145,6 +145,7 @@ void USART1_IRQHandler(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(USART1->ISR & USART_ISR_FE){
|
if(USART1->ISR & USART_ISR_FE){
|
||||||
|
//TODO read rx==0
|
||||||
USART1->ICR = USART_ICR_FECF;
|
USART1->ICR = USART_ICR_FECF;
|
||||||
//if(rxBufferPos != 514)
|
//if(rxBufferPos != 514)
|
||||||
// printf("FE after %d\n",rxBufferPos);
|
// printf("FE after %d\n",rxBufferPos);
|
||||||
@@ -182,6 +183,27 @@ void DMA1_Channel1_IRQHandler(){
|
|||||||
SEGGER_SYSVIEW_PrintfHost("DMA");
|
SEGGER_SYSVIEW_PrintfHost("DMA");
|
||||||
SEGGER_SYSVIEW_RecordExitISR();
|
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 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -190,7 +212,6 @@ void DMA1_Channel1_IRQHandler(){
|
|||||||
*/
|
*/
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
@@ -218,11 +239,13 @@ int main(void)
|
|||||||
MX_GPIO_Init();
|
MX_GPIO_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
init_UART1_dma();
|
init_UART1_dma();
|
||||||
|
init_stepper();
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
/* USER CODE BEGIN WHILE */
|
/* USER CODE BEGIN WHILE */
|
||||||
//HAL_UART_Receive_DMA(&huart1, rxBuffer, BUFFER_SIZE);
|
//HAL_UART_Receive_DMA(&huart1, rxBuffer, BUFFER_SIZE);
|
||||||
|
uint16_t cnt = 0;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
printf("buf: ");
|
printf("buf: ");
|
||||||
@@ -230,6 +253,10 @@ int main(void)
|
|||||||
printf("0x%02X ", rxBuffer[i]);
|
printf("0x%02X ", rxBuffer[i]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
SEGGER_SYSVIEW_OnIdle();
|
SEGGER_SYSVIEW_OnIdle();
|
||||||
|
if(cnt++ >= 260-rxBuffer[1]){
|
||||||
|
cnt = 0;
|
||||||
|
GPIOE->ODR ^= GPIO_ODR_OD2;
|
||||||
|
}
|
||||||
/* USER CODE END WHILE */
|
/* USER CODE END WHILE */
|
||||||
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
|
|||||||
Reference in New Issue
Block a user