Rev 60 | Rev 62 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 60 | Rev 61 | ||
|---|---|---|---|
| Line 44... | Line 44... | ||
| 44 | /* USER CODE BEGIN PM */ |
44 | /* USER CODE BEGIN PM */ |
| 45 | 45 | ||
| 46 | /* USER CODE END PM */ |
46 | /* USER CODE END PM */ |
| 47 | 47 | ||
| 48 | /* Private variables ---------------------------------------------------------*/ |
48 | /* Private variables ---------------------------------------------------------*/ |
| 49 | SPI_HandleTypeDef hspi1; |
49 | SPI_HandleTypeDef hspi1; |
| 50 | 50 | ||
| 51 | TIM_HandleTypeDef htim2; |
51 | TIM_HandleTypeDef htim2; |
| 52 | TIM_HandleTypeDef htim3; |
52 | TIM_HandleTypeDef htim3; |
| 53 | TIM_HandleTypeDef htim9; |
53 | TIM_HandleTypeDef htim9; |
| 54 | 54 | ||
| Line 105... | Line 105... | ||
| 105 | if (contexts[dial].knobPos < 0) |
105 | if (contexts[dial].knobPos < 0) |
| 106 | return -1; |
106 | return -1; |
| 107 | return cc_display(dial, suppress); |
107 | return cc_display(dial, suppress); |
| 108 | } |
108 | } |
| 109 | 109 | ||
| 110 | void sendString(usart_ctl *ctl, char *string, int length) |
- | |
| 111 | { |
- | |
| 112 | int i; |
- | |
| 113 | for (i = 0; i < length; i++) |
- | |
| 114 | PutCharSerial(ctl, string[i]); |
- | |
| 115 | } |
- | |
| 116 | - | ||
| 117 | /// \note this code doesnt work so it leaves speed as 9600. |
110 | /// \note this code doesnt work so it leaves speed as 9600. |
| 118 | /// \brief Setup Bluetooth module |
111 | /// \brief Setup Bluetooth module |
| 119 | void initModule(usart_ctl *ctl, uint32_t baudRate) |
112 | void initModule(usart_ctl *ctl, uint32_t baudRate) |
| 120 | { |
113 | { |
| 121 | char initBuf[30]; |
114 | char initBuf[30]; |
| Line 137... | Line 130... | ||
| 137 | uint8_t rmc_buff[80]; |
130 | uint8_t rmc_buff[80]; |
| 138 | uint16_t rmc_length; |
131 | uint16_t rmc_length; |
| 139 | 132 | ||
| 140 | uint8_t rmc_callback(uint8_t *data, uint16_t length) |
133 | uint8_t rmc_callback(uint8_t *data, uint16_t length) |
| 141 | { |
134 | { |
| 142 | rmc_length = length; |
135 | rmc_length = length<sizeof(rmc_buff)?length : sizeof(rmc_buff); |
| 143 | memcpy(rmc_buff, data, length); |
136 | memcpy(rmc_buff, data, length); |
| - | 137 | return 0; |
|
| - | 138 | ||
| 144 | } |
139 | } |
| 145 | 140 | ||
| 146 | /* USER CODE END PFP */ |
141 | /* USER CODE END PFP */ |
| 147 | 142 | ||
| 148 | /* Private user code ---------------------------------------------------------*/ |
143 | /* Private user code ---------------------------------------------------------*/ |
| 149 | /* USER CODE BEGIN 0 */ |
144 | /* USER CODE BEGIN 0 */ |
| 150 | 145 | ||
| 151 | /* USER CODE END 0 */ |
146 | /* USER CODE END 0 */ |
| 152 | 147 | ||
| 153 | /** |
148 | /** |
| 154 | * @brief The application entry point. |
149 | * @brief The application entry point. |
| 155 | * @retval int |
150 | * @retval int |
| 156 | */ |
151 | */ |
| 157 | int main(void) |
152 | int main(void) |
| 158 | { |
153 | { |
| 159 | /* USER CODE BEGIN 1 */ |
154 | /* USER CODE BEGIN 1 */ |
| 160 | __HAL_RCC_SPI1_CLK_ENABLE(); |
155 | __HAL_RCC_SPI1_CLK_ENABLE(); |
| 161 | __HAL_RCC_USART1_CLK_ENABLE(); // PLX main port |
156 | __HAL_RCC_USART1_CLK_ENABLE(); // PLX main port |
| 162 | __HAL_RCC_USART2_CLK_ENABLE(); // debug port |
157 | __HAL_RCC_USART2_CLK_ENABLE(); // debug port |
| 163 | __HAL_RCC_USART3_CLK_ENABLE(); // Bluetooth port |
158 | __HAL_RCC_USART3_CLK_ENABLE(); // Bluetooth port |
| 164 | __HAL_RCC_UART4_CLK_ENABLE(); // NMEA0183 port |
159 | __HAL_RCC_UART4_CLK_ENABLE(); // NMEA0183 port |
| 165 | 160 | ||
| 166 | __HAL_RCC_TIM3_CLK_ENABLE(); |
161 | __HAL_RCC_TIM3_CLK_ENABLE(); |
| 167 | 162 | ||
| 168 | __HAL_RCC_TIM9_CLK_ENABLE(); |
163 | __HAL_RCC_TIM9_CLK_ENABLE(); |
| 169 | 164 | ||
| Line 291... | Line 286... | ||
| 291 | 286 | ||
| 292 | while (1) |
287 | while (1) |
| 293 | { |
288 | { |
| 294 | 289 | ||
| 295 | // poll GPS Position/time on UART4 |
290 | // poll GPS Position/time on UART4 |
| 296 | bool stat = updateLocation(&loc, &uc4); |
291 | (void) updateLocation(&loc, &uc4); |
| 297 | if (loc.good) |
292 | if (loc.good) |
| 298 | { |
293 | { |
| 299 | 294 | ||
| 300 | loc.good = false; |
295 | loc.good = false; |
| 301 | } |
296 | } |
| Line 371... | Line 366... | ||
| 371 | if (Info[i].data < Info[i].Min) |
366 | if (Info[i].data < Info[i].Min) |
| 372 | { |
367 | { |
| 373 | Info[i].Min = Info[i].data; |
368 | Info[i].Min = Info[i].data; |
| 374 | } |
369 | } |
| 375 | 370 | ||
| 376 | // Send item to BT |
371 | // Send items to BT if it is in connected state |
| 377 | if (rmc_length) |
372 | if (HAL_GPIO_ReadPin(BT_STATE_GPIO_Port, BT_STATE_Pin) == GPIO_PIN_SET) |
| 378 | { |
373 | { |
| - | 374 | if (rmc_length) |
|
| - | 375 | { |
|
| 379 | sendString(&uc3, rmc_buff, rmc_length); |
376 | sendString(&uc3, rmc_buff, rmc_length); |
| 380 | rmc_length = 0; |
377 | rmc_length = 0; |
| 381 | } |
378 | } |
| 382 | 379 | ||
| 383 | if (log) |
380 | if (log) |
| 384 | { |
381 | { |
| 385 | 382 | ||
| 386 | char outbuff[100]; |
383 | char outbuff[100]; |
| 387 | 384 | ||
| 388 | int cnt = small_sprintf(outbuff, |
385 | int cnt = small_sprintf(outbuff, |
| 389 | "$PLLOG,%d,%d,%d", |
386 | "$PLLOG,%d,%d,%d", |
| 390 | Info[i].observation, |
387 | Info[i].observation, |
| 391 | Info[i].instance, |
388 | Info[i].instance, |
| 392 | Info[i].data); |
389 | Info[i].data); |
| 393 | 390 | ||
| 394 | // NMEA style checksum |
391 | // NMEA style checksum |
| 395 | int ck; |
392 | int ck; |
| 396 | int sum = 0; |
393 | int sum = 0; |
| 397 | for (ck = 1; ck < cnt; ck++) |
394 | for (ck = 1; ck < cnt; ck++) |
| 398 | sum += outbuff[ck]; |
395 | sum += outbuff[ck]; |
| 399 | cnt += small_sprintf(outbuff + cnt, "*%02X\n", |
396 | cnt += small_sprintf(outbuff + cnt, "*%02X\n", |
| 400 | sum & 0xFF); |
397 | sum & 0xFF); |
| 401 | sendString(&uc3, outbuff, cnt); |
398 | sendString(&uc3, outbuff, cnt); |
| - | 399 | } |
|
| 402 | } |
400 | } |
| 403 | } |
401 | } |
| 404 | 402 | ||
| 405 | // now to display the information |
403 | // now to display the information |
| 406 | int suppress = DisplayCurrent(0, -1); |
404 | int suppress = DisplayCurrent(0, -1); |
| Line 447... | Line 445... | ||
| 447 | } |
445 | } |
| 448 | /* USER CODE END 3 */ |
446 | /* USER CODE END 3 */ |
| 449 | } |
447 | } |
| 450 | 448 | ||
| 451 | /** |
449 | /** |
| 452 | * @brief System Clock Configuration |
450 | * @brief System Clock Configuration |
| 453 | * @retval None |
451 | * @retval None |
| 454 | */ |
452 | */ |
| 455 | void SystemClock_Config(void) |
453 | void SystemClock_Config(void) |
| 456 | { |
454 | { |
| 457 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
455 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
| 458 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
456 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
| 459 | 457 | ||
| 460 | /** Configure the main internal regulator output voltage |
458 | /** Configure the main internal regulator output voltage |
| 461 | */ |
459 | */ |
| 462 | __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); |
460 | __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); |
| - | 461 | ||
| 463 | /** Initializes the RCC Oscillators according to the specified parameters |
462 | /** Initializes the RCC Oscillators according to the specified parameters |
| 464 | * in the RCC_OscInitTypeDef structure. |
463 | * in the RCC_OscInitTypeDef structure. |
| 465 | */ |
464 | */ |
| 466 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; |
465 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; |
| 467 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
466 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
| 468 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
467 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
| 469 | RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; |
468 | RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; |
| 470 | RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12; |
469 | RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12; |
| 471 | RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3; |
470 | RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3; |
| 472 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) |
471 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) |
| 473 | { |
472 | { |
| 474 | Error_Handler(); |
473 | Error_Handler(); |
| 475 | } |
474 | } |
| - | 475 | ||
| 476 | /** Initializes the CPU, AHB and APB buses clocks |
476 | /** Initializes the CPU, AHB and APB buses clocks |
| 477 | */ |
477 | */ |
| 478 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; |
478 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |
| - | 479 | |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; |
|
| 479 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
480 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
| 480 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
481 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
| 481 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; |
482 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; |
| 482 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
483 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
| 483 | 484 | ||
| Line 486... | Line 487... | ||
| 486 | Error_Handler(); |
487 | Error_Handler(); |
| 487 | } |
488 | } |
| 488 | } |
489 | } |
| 489 | 490 | ||
| 490 | /** |
491 | /** |
| 491 | * @brief SPI1 Initialization Function |
492 | * @brief SPI1 Initialization Function |
| 492 | * @param None |
493 | * @param None |
| 493 | * @retval None |
494 | * @retval None |
| 494 | */ |
495 | */ |
| 495 | static void MX_SPI1_Init(void) |
496 | static void MX_SPI1_Init(void) |
| 496 | { |
497 | { |
| 497 | 498 | ||
| 498 | /* USER CODE BEGIN SPI1_Init 0 */ |
499 | /* USER CODE BEGIN SPI1_Init 0 */ |
| 499 | 500 | ||
| Line 520... | Line 521... | ||
| 520 | Error_Handler(); |
521 | Error_Handler(); |
| 521 | } |
522 | } |
| 522 | /* USER CODE BEGIN SPI1_Init 2 */ |
523 | /* USER CODE BEGIN SPI1_Init 2 */ |
| 523 | 524 | ||
| 524 | /* USER CODE END SPI1_Init 2 */ |
525 | /* USER CODE END SPI1_Init 2 */ |
| - | 526 | ||
| 525 | } |
527 | } |
| 526 | 528 | ||
| 527 | /** |
529 | /** |
| 528 | * @brief TIM2 Initialization Function |
530 | * @brief TIM2 Initialization Function |
| 529 | * @param None |
531 | * @param None |
| 530 | * @retval None |
532 | * @retval None |
| 531 | */ |
533 | */ |
| 532 | static void MX_TIM2_Init(void) |
534 | static void MX_TIM2_Init(void) |
| 533 | { |
535 | { |
| 534 | 536 | ||
| 535 | /* USER CODE BEGIN TIM2_Init 0 */ |
537 | /* USER CODE BEGIN TIM2_Init 0 */ |
| 536 | 538 | ||
| Line 564... | Line 566... | ||
| 564 | Error_Handler(); |
566 | Error_Handler(); |
| 565 | } |
567 | } |
| 566 | /* USER CODE BEGIN TIM2_Init 2 */ |
568 | /* USER CODE BEGIN TIM2_Init 2 */ |
| 567 | 569 | ||
| 568 | /* USER CODE END TIM2_Init 2 */ |
570 | /* USER CODE END TIM2_Init 2 */ |
| - | 571 | ||
| 569 | } |
572 | } |
| 570 | 573 | ||
| 571 | /** |
574 | /** |
| 572 | * @brief TIM3 Initialization Function |
575 | * @brief TIM3 Initialization Function |
| 573 | * @param None |
576 | * @param None |
| 574 | * @retval None |
577 | * @retval None |
| 575 | */ |
578 | */ |
| 576 | static void MX_TIM3_Init(void) |
579 | static void MX_TIM3_Init(void) |
| 577 | { |
580 | { |
| 578 | 581 | ||
| 579 | /* USER CODE BEGIN TIM3_Init 0 */ |
582 | /* USER CODE BEGIN TIM3_Init 0 */ |
| 580 | 583 | ||
| Line 612... | Line 615... | ||
| 612 | Error_Handler(); |
615 | Error_Handler(); |
| 613 | } |
616 | } |
| 614 | /* USER CODE BEGIN TIM3_Init 2 */ |
617 | /* USER CODE BEGIN TIM3_Init 2 */ |
| 615 | 618 | ||
| 616 | /* USER CODE END TIM3_Init 2 */ |
619 | /* USER CODE END TIM3_Init 2 */ |
| - | 620 | ||
| 617 | } |
621 | } |
| 618 | 622 | ||
| 619 | /** |
623 | /** |
| 620 | * @brief TIM9 Initialization Function |
624 | * @brief TIM9 Initialization Function |
| 621 | * @param None |
625 | * @param None |
| 622 | * @retval None |
626 | * @retval None |
| 623 | */ |
627 | */ |
| 624 | static void MX_TIM9_Init(void) |
628 | static void MX_TIM9_Init(void) |
| 625 | { |
629 | { |
| 626 | 630 | ||
| 627 | /* USER CODE BEGIN TIM9_Init 0 */ |
631 | /* USER CODE BEGIN TIM9_Init 0 */ |
| 628 | 632 | ||
| Line 660... | Line 664... | ||
| 660 | Error_Handler(); |
664 | Error_Handler(); |
| 661 | } |
665 | } |
| 662 | /* USER CODE BEGIN TIM9_Init 2 */ |
666 | /* USER CODE BEGIN TIM9_Init 2 */ |
| 663 | 667 | ||
| 664 | /* USER CODE END TIM9_Init 2 */ |
668 | /* USER CODE END TIM9_Init 2 */ |
| - | 669 | ||
| 665 | } |
670 | } |
| 666 | 671 | ||
| 667 | /** |
672 | /** |
| 668 | * @brief UART4 Initialization Function |
673 | * @brief UART4 Initialization Function |
| 669 | * @param None |
674 | * @param None |
| 670 | * @retval None |
675 | * @retval None |
| 671 | */ |
676 | */ |
| 672 | static void MX_UART4_Init(void) |
677 | static void MX_UART4_Init(void) |
| 673 | { |
678 | { |
| 674 | 679 | ||
| 675 | /* USER CODE BEGIN UART4_Init 0 */ |
680 | /* USER CODE BEGIN UART4_Init 0 */ |
| 676 | 681 | ||
| Line 692... | Line 697... | ||
| 692 | Error_Handler(); |
697 | Error_Handler(); |
| 693 | } |
698 | } |
| 694 | /* USER CODE BEGIN UART4_Init 2 */ |
699 | /* USER CODE BEGIN UART4_Init 2 */ |
| 695 | 700 | ||
| 696 | /* USER CODE END UART4_Init 2 */ |
701 | /* USER CODE END UART4_Init 2 */ |
| - | 702 | ||
| 697 | } |
703 | } |
| 698 | 704 | ||
| 699 | /** |
705 | /** |
| 700 | * @brief USART1 Initialization Function |
706 | * @brief USART1 Initialization Function |
| 701 | * @param None |
707 | * @param None |
| 702 | * @retval None |
708 | * @retval None |
| 703 | */ |
709 | */ |
| 704 | static void MX_USART1_UART_Init(void) |
710 | static void MX_USART1_UART_Init(void) |
| 705 | { |
711 | { |
| 706 | 712 | ||
| 707 | /* USER CODE BEGIN USART1_Init 0 */ |
713 | /* USER CODE BEGIN USART1_Init 0 */ |
| 708 | 714 | ||
| Line 724... | Line 730... | ||
| 724 | Error_Handler(); |
730 | Error_Handler(); |
| 725 | } |
731 | } |
| 726 | /* USER CODE BEGIN USART1_Init 2 */ |
732 | /* USER CODE BEGIN USART1_Init 2 */ |
| 727 | 733 | ||
| 728 | /* USER CODE END USART1_Init 2 */ |
734 | /* USER CODE END USART1_Init 2 */ |
| - | 735 | ||
| 729 | } |
736 | } |
| 730 | 737 | ||
| 731 | /** |
738 | /** |
| 732 | * @brief USART2 Initialization Function |
739 | * @brief USART2 Initialization Function |
| 733 | * @param None |
740 | * @param None |
| 734 | * @retval None |
741 | * @retval None |
| 735 | */ |
742 | */ |
| 736 | static void MX_USART2_UART_Init(void) |
743 | static void MX_USART2_UART_Init(void) |
| 737 | { |
744 | { |
| 738 | 745 | ||
| 739 | /* USER CODE BEGIN USART2_Init 0 */ |
746 | /* USER CODE BEGIN USART2_Init 0 */ |
| 740 | 747 | ||
| Line 756... | Line 763... | ||
| 756 | Error_Handler(); |
763 | Error_Handler(); |
| 757 | } |
764 | } |
| 758 | /* USER CODE BEGIN USART2_Init 2 */ |
765 | /* USER CODE BEGIN USART2_Init 2 */ |
| 759 | 766 | ||
| 760 | /* USER CODE END USART2_Init 2 */ |
767 | /* USER CODE END USART2_Init 2 */ |
| - | 768 | ||
| 761 | } |
769 | } |
| 762 | 770 | ||
| 763 | /** |
771 | /** |
| 764 | * @brief USART3 Initialization Function |
772 | * @brief USART3 Initialization Function |
| 765 | * @param None |
773 | * @param None |
| 766 | * @retval None |
774 | * @retval None |
| 767 | */ |
775 | */ |
| 768 | static void MX_USART3_UART_Init(void) |
776 | static void MX_USART3_UART_Init(void) |
| 769 | { |
777 | { |
| 770 | 778 | ||
| 771 | /* USER CODE BEGIN USART3_Init 0 */ |
779 | /* USER CODE BEGIN USART3_Init 0 */ |
| 772 | 780 | ||
| Line 788... | Line 796... | ||
| 788 | Error_Handler(); |
796 | Error_Handler(); |
| 789 | } |
797 | } |
| 790 | /* USER CODE BEGIN USART3_Init 2 */ |
798 | /* USER CODE BEGIN USART3_Init 2 */ |
| 791 | 799 | ||
| 792 | /* USER CODE END USART3_Init 2 */ |
800 | /* USER CODE END USART3_Init 2 */ |
| - | 801 | ||
| 793 | } |
802 | } |
| 794 | 803 | ||
| 795 | /** |
804 | /** |
| 796 | * @brief GPIO Initialization Function |
805 | * @brief GPIO Initialization Function |
| 797 | * @param None |
806 | * @param None |
| 798 | * @retval None |
807 | * @retval None |
| 799 | */ |
808 | */ |
| 800 | static void MX_GPIO_Init(void) |
809 | static void MX_GPIO_Init(void) |
| 801 | { |
810 | { |
| 802 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
811 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
| 803 | 812 | ||
| 804 | /* GPIO Ports Clock Enable */ |
813 | /* GPIO Ports Clock Enable */ |
| Line 809... | Line 818... | ||
| 809 | 818 | ||
| 810 | /*Configure GPIO pin Output Level */ |
819 | /*Configure GPIO pin Output Level */ |
| 811 | HAL_GPIO_WritePin(SPI_NSS1_GPIO_Port, SPI_NSS1_Pin, GPIO_PIN_SET); |
820 | HAL_GPIO_WritePin(SPI_NSS1_GPIO_Port, SPI_NSS1_Pin, GPIO_PIN_SET); |
| 812 | 821 | ||
| 813 | /*Configure GPIO pin Output Level */ |
822 | /*Configure GPIO pin Output Level */ |
| 814 | HAL_GPIO_WritePin(GPIOA, SPI_CD_Pin | BT_BUTTON_Pin, GPIO_PIN_RESET); |
823 | HAL_GPIO_WritePin(GPIOA, SPI_CD_Pin|BT_BUTTON_Pin, GPIO_PIN_RESET); |
| 815 | 824 | ||
| 816 | /*Configure GPIO pin Output Level */ |
825 | /*Configure GPIO pin Output Level */ |
| 817 | HAL_GPIO_WritePin(GPIOC, SPI_RESET_Pin | POWER_LATCH_Pin | USB_PWR_Pin, GPIO_PIN_RESET); |
826 | HAL_GPIO_WritePin(GPIOC, SPI_RESET_Pin|POWER_LATCH_Pin|USB_PWR_Pin, GPIO_PIN_RESET); |
| 818 | 827 | ||
| 819 | /*Configure GPIO pin Output Level */ |
828 | /*Configure GPIO pin Output Level */ |
| 820 | HAL_GPIO_WritePin(SPI_NSS2_GPIO_Port, SPI_NSS2_Pin, GPIO_PIN_SET); |
829 | HAL_GPIO_WritePin(SPI_NSS2_GPIO_Port, SPI_NSS2_Pin, GPIO_PIN_SET); |
| 821 | 830 | ||
| 822 | /*Configure GPIO pins : SPI_NSS1_Pin SPI_CD_Pin */ |
831 | /*Configure GPIO pins : SPI_NSS1_Pin SPI_CD_Pin */ |
| 823 | GPIO_InitStruct.Pin = SPI_NSS1_Pin | SPI_CD_Pin; |
832 | GPIO_InitStruct.Pin = SPI_NSS1_Pin|SPI_CD_Pin; |
| 824 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
833 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| 825 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
834 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 826 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
835 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| 827 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
836 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
| 828 | 837 | ||
| 829 | /*Configure GPIO pins : SPI_RESET_Pin SPI_NSS2_Pin POWER_LATCH_Pin USB_PWR_Pin */ |
838 | /*Configure GPIO pins : SPI_RESET_Pin SPI_NSS2_Pin POWER_LATCH_Pin USB_PWR_Pin */ |
| 830 | GPIO_InitStruct.Pin = SPI_RESET_Pin | SPI_NSS2_Pin | POWER_LATCH_Pin | USB_PWR_Pin; |
839 | GPIO_InitStruct.Pin = SPI_RESET_Pin|SPI_NSS2_Pin|POWER_LATCH_Pin|USB_PWR_Pin; |
| 831 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
840 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| 832 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
841 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 833 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
842 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| 834 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
843 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| 835 | 844 | ||
| 836 | /*Configure GPIO pins : SW1_PUSH_Pin SW2_PUSH_Pin */ |
845 | /*Configure GPIO pins : BT_STATE_Pin SW1_PUSH_Pin SW2_PUSH_Pin */ |
| 837 | GPIO_InitStruct.Pin = SW1_PUSH_Pin | SW2_PUSH_Pin; |
846 | GPIO_InitStruct.Pin = BT_STATE_Pin|SW1_PUSH_Pin|SW2_PUSH_Pin; |
| 838 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
847 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
| 839 | GPIO_InitStruct.Pull = GPIO_PULLUP; |
848 | GPIO_InitStruct.Pull = GPIO_PULLUP; |
| 840 | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); |
849 | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); |
| 841 | 850 | ||
| 842 | /*Configure GPIO pin : IGNITION_Pin */ |
851 | /*Configure GPIO pin : IGNITION_Pin */ |
| Line 849... | Line 858... | ||
| 849 | GPIO_InitStruct.Pin = BT_BUTTON_Pin; |
858 | GPIO_InitStruct.Pin = BT_BUTTON_Pin; |
| 850 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; |
859 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; |
| 851 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
860 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 852 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
861 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| 853 | HAL_GPIO_Init(BT_BUTTON_GPIO_Port, &GPIO_InitStruct); |
862 | HAL_GPIO_Init(BT_BUTTON_GPIO_Port, &GPIO_InitStruct); |
| - | 863 | ||
| 854 | } |
864 | } |
| 855 | 865 | ||
| 856 | /* USER CODE BEGIN 4 */ |
866 | /* USER CODE BEGIN 4 */ |
| 857 | 867 | ||
| 858 | /* USER CODE END 4 */ |
868 | /* USER CODE END 4 */ |
| 859 | 869 | ||
| 860 | /** |
870 | /** |
| 861 | * @brief This function is executed in case of error occurrence. |
871 | * @brief This function is executed in case of error occurrence. |
| 862 | * @retval None |
872 | * @retval None |
| 863 | */ |
873 | */ |
| 864 | void Error_Handler(void) |
874 | void Error_Handler(void) |
| 865 | { |
875 | { |
| 866 | /* USER CODE BEGIN Error_Handler_Debug */ |
876 | /* USER CODE BEGIN Error_Handler_Debug */ |
| 867 | /* User can add his own implementation to report the HAL error return state */ |
877 | /* User can add his own implementation to report the HAL error return state */ |
| 868 | 878 | ||
| 869 | /* USER CODE END Error_Handler_Debug */ |
879 | /* USER CODE END Error_Handler_Debug */ |
| 870 | } |
880 | } |
| 871 | 881 | ||
| 872 | #ifdef USE_FULL_ASSERT |
882 | #ifdef USE_FULL_ASSERT |
| 873 | /** |
883 | /** |
| 874 | * @brief Reports the name of the source file and the source line number |
884 | * @brief Reports the name of the source file and the source line number |
| 875 | * where the assert_param error has occurred. |
885 | * where the assert_param error has occurred. |
| 876 | * @param file: pointer to the source file name |
886 | * @param file: pointer to the source file name |
| 877 | * @param line: assert_param error line source number |
887 | * @param line: assert_param error line source number |
| 878 | * @retval None |
888 | * @retval None |
| 879 | */ |
889 | */ |
| 880 | void assert_failed(uint8_t *file, uint32_t line) |
890 | void assert_failed(uint8_t *file, uint32_t line) |
| 881 | { |
891 | { |
| 882 | /* USER CODE BEGIN 6 */ |
892 | /* USER CODE BEGIN 6 */ |
| 883 | /* User can add his own implementation to report the file name and line number, |
893 | /* User can add his own implementation to report the file name and line number, |
| 884 | tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |
894 | tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |
| 885 | /* USER CODE END 6 */ |
895 | /* USER CODE END 6 */ |
| 886 | } |
896 | } |
| 887 | #endif /* USE_FULL_ASSERT */ |
897 | #endif /* USE_FULL_ASSERT */ |
| 888 | - | ||
| 889 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
- | |