اطلاعیه

Collapse
No announcement yet.

آموزش راه اندازی spi در stm32f103

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    آموزش راه اندازی spi در stm32f103

    سلام
    پیرو زحمتام به بچه های انجمن ، برای پیدا کردن یک برنامه نمونه ساده از راه اندازی spi در stm32f103 و آموزش کاربردی توابع اون در cmsis در کیل 5 بسیار نیازمند یاری سبزتان هستیم
    از آموزش های کیل و اس تی پیز خاصی حالیم نشد . یک سمپل راه اندازی ساده و راه اندازی توابع اصلی خواندن و نوشتن بیشتر میتونه کمکم کنه
    بی نهایت ممنون :smile:
    زندگي آن چه که زيسته ايم نيست ، بلکه آن چيزي است که از گذشته به خاطر داريم ...گابريل گارسيا مارکز

    #2
    پاسخ : آموزش راه اندازی spi در stm32f103

    منم نیاز دارم یه کمکی کنین دوستان

    دیدگاه


      #3
      پاسخ : آموزش راه اندازی spi در stm32f103

      کد:
      #include "stm32f10x.h"
      
      int main(void){
      	int k;
      unsigned long int i;
      	
      	 RCC->APB1ENR=RCC_APB1ENR_SPI2EN;
      	 RCC->APB2ENR=RCC_APB2ENR_IOPBEN;  // GPIOA & ADC1 Enable Clock 
      	 GPIOB->CRH = GPIO_CRH_MODE13_0 | GPIO_CRH_CNF13_1  //PB13 SCK IS ALTER PUSH PULL=MOD1& CNFY2
      	      | GPIO_CRH_MODE15_0 | GPIO_CRH_CNF15_1  //PB15 MOS ALTER PUSH PULL
      	      | GPIO_CRH_MODE14_0 | GPIO_CRH_CNF14_1  //PB14 MIS ALTER PUSH PULL	
      						 | GPIO_CRH_MODE12;							 			//pb12 is nss INPUT FOATINIG
      	
      	 SPI2->CR1= SPI_CR1_SSI | SPI_CR1_SSM
      	     | SPI_CR1_SSM | SPI_CR1_MSTR
      	     | SPI_CR1_BR_1 | SPI_CR1_SPE;
      	    
       
      	while(1)	{
      	 for(k=0;k<15;k++)
      		{
      		SPI2->DR = k;
      		while (!(SPI2->SR=SPI_SR_BSY));
      			for (i=0;i<3000000;i++);
      		}				
      	     }	
      }

      دیدگاه


        #4
        پاسخ : آموزش راه اندازی spi در stm32f103

        void SPI1_Init(void)
        {
        SPI_InitTypeDef SPI_InitStructure;

        SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
        SPI_InitStructure.SPI_CRCPolynomial = 7;
        SPI_Init(SPI1, &SPI_InitStructure);

        SPI_Cmd(SPI1, ENABLE);
        }
        The losers find problem in every answer but the winners find an answer in every problem

        FETAMAKER

        دیدگاه


          #5
          پاسخ : آموزش راه اندازی spi در stm32f103

          البته اول باید کلاکشو فعال کنی
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);


          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
          GPIO_Init(GPIOB, &GPIO_InitStructure);
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
          GPIO_Init(GPIOA, &GPIO_InitStructure);
          The losers find problem in every answer but the winners find an answer in every problem

          FETAMAKER

          دیدگاه

          لطفا صبر کنید...
          X