Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2 | Rev 6 | ||
|---|---|---|---|
| Line 580... | Line 580... | ||
| 580 | */ |
580 | */ |
| 581 | #define SPI_RESET_CRC(__HANDLE__) do{CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);\ |
581 | #define SPI_RESET_CRC(__HANDLE__) do{CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);\ |
| 582 | SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);}while(0U) |
582 | SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);}while(0U) |
| 583 | 583 | ||
| 584 | /** @brief Check whether the specified SPI flag is set or not. |
584 | /** @brief Check whether the specified SPI flag is set or not. |
| 585 | * @param __SR__ copy of SPI SR regsiter. |
585 | * @param __SR__ copy of SPI SR register. |
| 586 | * @param __FLAG__ specifies the flag to check. |
586 | * @param __FLAG__ specifies the flag to check. |
| 587 | * This parameter can be one of the following values: |
587 | * This parameter can be one of the following values: |
| 588 | * @arg SPI_FLAG_RXNE: Receive buffer not empty flag |
588 | * @arg SPI_FLAG_RXNE: Receive buffer not empty flag |
| 589 | * @arg SPI_FLAG_TXE: Transmit buffer empty flag |
589 | * @arg SPI_FLAG_TXE: Transmit buffer empty flag |
| 590 | * @arg SPI_FLAG_CRCERR: CRC error flag |
590 | * @arg SPI_FLAG_CRCERR: CRC error flag |
| Line 594... | Line 594... | ||
| 594 | * @arg SPI_FLAG_FRE: Frame format error flag |
594 | * @arg SPI_FLAG_FRE: Frame format error flag |
| 595 | * @arg SPI_FLAG_FTLVL: SPI fifo transmission level |
595 | * @arg SPI_FLAG_FTLVL: SPI fifo transmission level |
| 596 | * @arg SPI_FLAG_FRLVL: SPI fifo reception level |
596 | * @arg SPI_FLAG_FRLVL: SPI fifo reception level |
| 597 | * @retval SET or RESET. |
597 | * @retval SET or RESET. |
| 598 | */ |
598 | */ |
| 599 | #define SPI_CHECK_FLAG(__SR__, __FLAG__) ((((__SR__) & ((__FLAG__) & SPI_FLAG_MASK)) == ((__FLAG__) & SPI_FLAG_MASK)) ? SET : RESET) |
599 | #define SPI_CHECK_FLAG(__SR__, __FLAG__) ((((__SR__) & ((__FLAG__) & SPI_FLAG_MASK)) == \ |
| - | 600 | ((__FLAG__) & SPI_FLAG_MASK)) ? SET : RESET) |
|
| 600 | 601 | ||
| 601 | /** @brief Check whether the specified SPI Interrupt is set or not. |
602 | /** @brief Check whether the specified SPI Interrupt is set or not. |
| 602 | * @param __CR2__ copy of SPI CR2 regsiter. |
603 | * @param __CR2__ copy of SPI CR2 register. |
| 603 | * @param __INTERRUPT__ specifies the SPI interrupt source to check. |
604 | * @param __INTERRUPT__ specifies the SPI interrupt source to check. |
| 604 | * This parameter can be one of the following values: |
605 | * This parameter can be one of the following values: |
| 605 | * @arg SPI_IT_TXE: Tx buffer empty interrupt enable |
606 | * @arg SPI_IT_TXE: Tx buffer empty interrupt enable |
| 606 | * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable |
607 | * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable |
| 607 | * @arg SPI_IT_ERR: Error interrupt enable |
608 | * @arg SPI_IT_ERR: Error interrupt enable |
| 608 | * @retval SET or RESET. |
609 | * @retval SET or RESET. |
| 609 | */ |
610 | */ |
| 610 | #define SPI_CHECK_IT_SOURCE(__CR2__, __INTERRUPT__) ((((__CR2__) & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) |
611 | #define SPI_CHECK_IT_SOURCE(__CR2__, __INTERRUPT__) ((((__CR2__) & (__INTERRUPT__)) == \ |
| - | 612 | (__INTERRUPT__)) ? SET : RESET) |
|
| 611 | 613 | ||
| 612 | /** @brief Checks if SPI Mode parameter is in allowed range. |
614 | /** @brief Checks if SPI Mode parameter is in allowed range. |
| 613 | * @param __MODE__ specifies the SPI Mode. |
615 | * @param __MODE__ specifies the SPI Mode. |
| 614 | * This parameter can be a value of @ref SPI_Mode |
616 | * This parameter can be a value of @ref SPI_Mode |
| 615 | * @retval None |
617 | * @retval None |
| 616 | */ |
618 | */ |
| 617 | #define IS_SPI_MODE(__MODE__) (((__MODE__) == SPI_MODE_SLAVE) || \ |
619 | #define IS_SPI_MODE(__MODE__) (((__MODE__) == SPI_MODE_SLAVE) || \ |
| 618 | ((__MODE__) == SPI_MODE_MASTER)) |
620 | ((__MODE__) == SPI_MODE_MASTER)) |
| 619 | 621 | ||
| 620 | /** @brief Checks if SPI Direction Mode parameter is in allowed range. |
622 | /** @brief Checks if SPI Direction Mode parameter is in allowed range. |
| 621 | * @param __MODE__ specifies the SPI Direction Mode. |
623 | * @param __MODE__ specifies the SPI Direction Mode. |
| 622 | * This parameter can be a value of @ref SPI_Direction |
624 | * This parameter can be a value of @ref SPI_Direction |
| 623 | * @retval None |
625 | * @retval None |
| Line 661... | Line 663... | ||
| 661 | /** @brief Checks if SPI Serial clock steady state parameter is in allowed range. |
663 | /** @brief Checks if SPI Serial clock steady state parameter is in allowed range. |
| 662 | * @param __CPOL__ specifies the SPI serial clock steady state. |
664 | * @param __CPOL__ specifies the SPI serial clock steady state. |
| 663 | * This parameter can be a value of @ref SPI_Clock_Polarity |
665 | * This parameter can be a value of @ref SPI_Clock_Polarity |
| 664 | * @retval None |
666 | * @retval None |
| 665 | */ |
667 | */ |
| 666 | #define IS_SPI_CPOL(__CPOL__) (((__CPOL__) == SPI_POLARITY_LOW) || \ |
668 | #define IS_SPI_CPOL(__CPOL__) (((__CPOL__) == SPI_POLARITY_LOW) || \ |
| 667 | ((__CPOL__) == SPI_POLARITY_HIGH)) |
669 | ((__CPOL__) == SPI_POLARITY_HIGH)) |
| 668 | 670 | ||
| 669 | /** @brief Checks if SPI Clock Phase parameter is in allowed range. |
671 | /** @brief Checks if SPI Clock Phase parameter is in allowed range. |
| 670 | * @param __CPHA__ specifies the SPI Clock Phase. |
672 | * @param __CPHA__ specifies the SPI Clock Phase. |
| 671 | * This parameter can be a value of @ref SPI_Clock_Phase |
673 | * This parameter can be a value of @ref SPI_Clock_Phase |
| 672 | * @retval None |
674 | * @retval None |
| 673 | */ |
675 | */ |
| 674 | #define IS_SPI_CPHA(__CPHA__) (((__CPHA__) == SPI_PHASE_1EDGE) || \ |
676 | #define IS_SPI_CPHA(__CPHA__) (((__CPHA__) == SPI_PHASE_1EDGE) || \ |
| 675 | ((__CPHA__) == SPI_PHASE_2EDGE)) |
677 | ((__CPHA__) == SPI_PHASE_2EDGE)) |
| 676 | 678 | ||
| 677 | /** @brief Checks if SPI Slave Select parameter is in allowed range. |
679 | /** @brief Checks if SPI Slave Select parameter is in allowed range. |
| 678 | * @param __NSS__ specifies the SPI Slave Select management parameter. |
680 | * @param __NSS__ specifies the SPI Slave Select management parameter. |
| 679 | * This parameter can be a value of @ref SPI_Slave_Select_management |
681 | * This parameter can be a value of @ref SPI_Slave_Select_management |
| 680 | * @retval None |
682 | * @retval None |
| 681 | */ |
683 | */ |
| 682 | #define IS_SPI_NSS(__NSS__) (((__NSS__) == SPI_NSS_SOFT) || \ |
684 | #define IS_SPI_NSS(__NSS__) (((__NSS__) == SPI_NSS_SOFT) || \ |
| 683 | ((__NSS__) == SPI_NSS_HARD_INPUT) || \ |
685 | ((__NSS__) == SPI_NSS_HARD_INPUT) || \ |
| 684 | ((__NSS__) == SPI_NSS_HARD_OUTPUT)) |
686 | ((__NSS__) == SPI_NSS_HARD_OUTPUT)) |
| 685 | 687 | ||
| 686 | /** @brief Checks if SPI NSS Pulse parameter is in allowed range. |
688 | /** @brief Checks if SPI NSS Pulse parameter is in allowed range. |
| 687 | * @param __NSSP__ specifies the SPI NSS Pulse Mode parameter. |
689 | * @param __NSSP__ specifies the SPI NSS Pulse Mode parameter. |
| 688 | * This parameter can be a value of @ref SPI_NSSP_Mode |
690 | * This parameter can be a value of @ref SPI_NSSP_Mode |
| 689 | * @retval None |
691 | * @retval None |
| 690 | */ |
692 | */ |
| 691 | #define IS_SPI_NSSP(__NSSP__) (((__NSSP__) == SPI_NSS_PULSE_ENABLE) || \ |
693 | #define IS_SPI_NSSP(__NSSP__) (((__NSSP__) == SPI_NSS_PULSE_ENABLE) || \ |
| 692 | ((__NSSP__) == SPI_NSS_PULSE_DISABLE)) |
694 | ((__NSSP__) == SPI_NSS_PULSE_DISABLE)) |
| 693 | 695 | ||
| 694 | /** @brief Checks if SPI Baudrate prescaler parameter is in allowed range. |
696 | /** @brief Checks if SPI Baudrate prescaler parameter is in allowed range. |
| 695 | * @param __PRESCALER__ specifies the SPI Baudrate prescaler. |
697 | * @param __PRESCALER__ specifies the SPI Baudrate prescaler. |
| 696 | * This parameter can be a value of @ref SPI_BaudRate_Prescaler |
698 | * This parameter can be a value of @ref SPI_BaudRate_Prescaler |
| 697 | * @retval None |
699 | * @retval None |
| Line 708... | Line 710... | ||
| 708 | /** @brief Checks if SPI MSB LSB transmission parameter is in allowed range. |
710 | /** @brief Checks if SPI MSB LSB transmission parameter is in allowed range. |
| 709 | * @param __BIT__ specifies the SPI MSB LSB transmission (whether data transfer starts from MSB or LSB bit). |
711 | * @param __BIT__ specifies the SPI MSB LSB transmission (whether data transfer starts from MSB or LSB bit). |
| 710 | * This parameter can be a value of @ref SPI_MSB_LSB_transmission |
712 | * This parameter can be a value of @ref SPI_MSB_LSB_transmission |
| 711 | * @retval None |
713 | * @retval None |
| 712 | */ |
714 | */ |
| 713 | #define IS_SPI_FIRST_BIT(__BIT__) (((__BIT__) == SPI_FIRSTBIT_MSB) || \ |
715 | #define IS_SPI_FIRST_BIT(__BIT__) (((__BIT__) == SPI_FIRSTBIT_MSB) || \ |
| 714 | ((__BIT__) == SPI_FIRSTBIT_LSB)) |
716 | ((__BIT__) == SPI_FIRSTBIT_LSB)) |
| 715 | 717 | ||
| 716 | /** @brief Checks if SPI TI mode parameter is in allowed range. |
718 | /** @brief Checks if SPI TI mode parameter is in allowed range. |
| 717 | * @param __MODE__ specifies the SPI TI mode. |
719 | * @param __MODE__ specifies the SPI TI mode. |
| 718 | * This parameter can be a value of @ref SPI_TI_mode |
720 | * This parameter can be a value of @ref SPI_TI_mode |
| 719 | * @retval None |
721 | * @retval None |
| 720 | */ |
722 | */ |
| 721 | #define IS_SPI_TIMODE(__MODE__) (((__MODE__) == SPI_TIMODE_DISABLE) || \ |
723 | #define IS_SPI_TIMODE(__MODE__) (((__MODE__) == SPI_TIMODE_DISABLE) || \ |
| 722 | ((__MODE__) == SPI_TIMODE_ENABLE)) |
724 | ((__MODE__) == SPI_TIMODE_ENABLE)) |
| 723 | 725 | ||
| 724 | /** @brief Checks if SPI CRC calculation enabled state is in allowed range. |
726 | /** @brief Checks if SPI CRC calculation enabled state is in allowed range. |
| 725 | * @param __CALCULATION__ specifies the SPI CRC calculation enable state. |
727 | * @param __CALCULATION__ specifies the SPI CRC calculation enable state. |
| 726 | * This parameter can be a value of @ref SPI_CRC_Calculation |
728 | * This parameter can be a value of @ref SPI_CRC_Calculation |
| 727 | * @retval None |
729 | * @retval None |
| Line 732... | Line 734... | ||
| 732 | /** @brief Checks if SPI CRC length is in allowed range. |
734 | /** @brief Checks if SPI CRC length is in allowed range. |
| 733 | * @param __LENGTH__ specifies the SPI CRC length. |
735 | * @param __LENGTH__ specifies the SPI CRC length. |
| 734 | * This parameter can be a value of @ref SPI_CRC_length |
736 | * This parameter can be a value of @ref SPI_CRC_length |
| 735 | * @retval None |
737 | * @retval None |
| 736 | */ |
738 | */ |
| 737 | #define IS_SPI_CRC_LENGTH(__LENGTH__) (((__LENGTH__) == SPI_CRC_LENGTH_DATASIZE) ||\ |
739 | #define IS_SPI_CRC_LENGTH(__LENGTH__) (((__LENGTH__) == SPI_CRC_LENGTH_DATASIZE) || \ |
| 738 | ((__LENGTH__) == SPI_CRC_LENGTH_8BIT) || \ |
740 | ((__LENGTH__) == SPI_CRC_LENGTH_8BIT) || \ |
| 739 | ((__LENGTH__) == SPI_CRC_LENGTH_16BIT)) |
741 | ((__LENGTH__) == SPI_CRC_LENGTH_16BIT)) |
| 740 | 742 | ||
| 741 | /** @brief Checks if SPI polynomial value to be used for the CRC calculation, is in allowed range. |
743 | /** @brief Checks if SPI polynomial value to be used for the CRC calculation, is in allowed range. |
| 742 | * @param __POLYNOMIAL__ specifies the SPI polynomial value to be used for the CRC calculation. |
744 | * @param __POLYNOMIAL__ specifies the SPI polynomial value to be used for the CRC calculation. |
| 743 | * This parameter must be a number between Min_Data = 0 and Max_Data = 65535 |
745 | * This parameter must be a number between Min_Data = 0 and Max_Data = 65535 |
| 744 | * @retval None |
746 | * @retval None |
| 745 | */ |
747 | */ |
| 746 | #define IS_SPI_CRC_POLYNOMIAL(__POLYNOMIAL__) (((__POLYNOMIAL__) >= 0x1U) && ((__POLYNOMIAL__) <= 0xFFFFU) && (((__POLYNOMIAL__)&0x1U) != 0U)) |
748 | #define IS_SPI_CRC_POLYNOMIAL(__POLYNOMIAL__) (((__POLYNOMIAL__) >= 0x1U) && \ |
| - | 749 | ((__POLYNOMIAL__) <= 0xFFFFU) && \ |
|
| - | 750 | (((__POLYNOMIAL__)&0x1U) != 0U)) |
|
| 747 | 751 | ||
| 748 | /** @brief Checks if DMA handle is valid. |
752 | /** @brief Checks if DMA handle is valid. |
| 749 | * @param __HANDLE__ specifies a DMA Handle. |
753 | * @param __HANDLE__ specifies a DMA Handle. |
| 750 | * @retval None |
754 | * @retval None |
| 751 | */ |
755 | */ |
| 752 | #define IS_SPI_DMA_HANDLE(__HANDLE__) ((__HANDLE__) != NULL) |
756 | #define IS_SPI_DMA_HANDLE(__HANDLE__) ((__HANDLE__) != NULL) |
| 753 | 757 | ||
| 754 | /** @brief Checks if a data address is 16bit aligned. |
- | |
| 755 | * @param __DATA__ specifies a data address. |
- | |
| 756 | * @retval None |
- | |
| 757 | */ |
- | |
| 758 | #define IS_SPI_16BIT_ALIGNED_ADDRESS(__DATA__) (((uint32_t)(__DATA__) % 2U) == 0U) |
- | |
| 759 | - | ||
| 760 | /** |
758 | /** |
| 761 | * @} |
759 | * @} |
| 762 | */ |
760 | */ |
| 763 | 761 | ||
| 764 | /* Include SPI HAL Extended module */ |
762 | /* Include SPI HAL Extended module */ |