˜Ë(bi¨¡o)î}: STˆF(tu¨¢n)ê (du¨¬)_Œ‘SPI¼Ä´æÆ÷³õʼ»¯ [´òÓ¡±¾í“]

×÷Õß: 51ºÚСţ    •r(sh¨ª)ég: 2016-4-10 15:12
˜Ë(bi¨¡o)î}: STˆF(tu¨¢n)ê (du¨¬)_Œ‘SPI¼Ä´æÆ÷³õʼ»¯
Œ‘SPI¼Ä´æÆ÷£º​
êP(gu¨¡n)æIÒòËØ£º​
1£º½oÎÒSPI¼Ä´æÆ÷µÄÊ×µØÖ·
#define SPIx SPI2
#define SPI2 ((SPI_TypeDef *) SPI2_BASE)
SpiHandle.Instance =SPIx;​​​
//(SPI_TypeDef *)µÄÐÞï—Ï£¬ß@ÊÇÒ»‚€µØÖ·£¡

ß@‚€InstanceÓÖÊÇÊ²Ã´ÄØ£¿​
SPI_TypeDef *Instance; ​
typedef struct
{​
__IO uint32_t CR1;
__IO uint32_t CR2;
__IO uint32_t SR;
__IO uint32_t DR;
__IO uint32_t CRCPR;
__IO uint32_t RXCRCR;
__IO uint32_t TXCRCR;
__IO uint32_t I2SCFGR;
} SPI_TypeDef;​
ÊÇÒÔSPI1žéÊ×µØÖ·µÄ£¬Ò»½MSPIÏàêP(gu¨¡n)¼Ä´æÆ÷µÄ¼¯ºÏ£¡£¡​

2£º½oÎÒSPIµÄÅäÖÃÖµ​
#define SPI_DATASIZE_8BIT ((uint32_t)0x00000000)
SpiHandle.Init.DataSize =SPI_DATASIZE_8BIT;​
//ºÜÃ÷ï@ÔÚ(uint32_t)µÄÐÞï—Ï£¬ß@ÊÇÒ»‚€Öµ£¡

3£ºÙxÖµß^³Ì​
WRITE_REG(hspi->Instance->CR1,(hspi->Init.Mode
£ühspi->Init.Direction
£ühspi->Init.DataSize
£ühspi->Init.CLKPolarity
£ühspi->Init.CLKPhase
£ü(hspi->Init.NSS &SPI_CR1_SSM)
£ühspi->Init.BaudRatePrescaler
£ühspi->Init.FirstBit
£ühspi->Init.CRCCalculation));​

¼´ÓДµ(sh¨´)“þ(j¨´)£¬ÓÖÓзŔµ(sh¨´)“þ(j¨´)µÄµØ·½£¬ß@‚€SPI³õʼ»¯¾Í±»ÄÃÏÂÁË£¡£¡​






šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1