Вы находитесь на странице: 1из 6

1.LED BLINK-BSRRL 2.

LED TOGGLE-BOTH-LIBRARY-ODR

typedef unsigned int uint32_t; #include <stm32l1xx.h>

#define RCC_AHBENR (uint32_t*) (0x40023800+ 0x1C) int i;

#define GPIOB_MODER (uint32_t*) (0x40020400+ 0x00) int main(void)

#define GPIOB_BSRRL (uint32_t*)(0x40020400+ 0x18) {

int main(void) RCC->AHBENR |= RCC_AHBENR_GPIOBEN;

{ GPIOB->MODER |=GPIO_MODER_MODER6_0;

*RCC_AHBENR |= 0x02; GPIOB->MODER |=GPIO_MODER_MODER7_0;

*GPIOB_MODER |= 0x5000; while(1)

*GPIOB_BSRRL = 1ul<<6; {

*GPIOB_BSRRL = 1ul<<7; GPIOB->ODR = 0x80;

} for (i=0;i<50000;i++);

GPIOB->ODR ^= 0xC0;

for(i=0;i<50000;i++);

}
3.LED TOGGLE-TIMER DELAY 4. USART transmission : WRITTEN BY US(WORKING CODE)
#include <stm32l1xx.h> #include<stm32l1xx.h>
int i; int i;
char ch[25]= "HAIHELLO\r";
int main(void)
int main(void)
{
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN; RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOB->MODER |=GPIO_MODER_MODER6_0; GPIOA->MODER |=
GPIOB->MODER |=GPIO_MODER_MODER7_0; GPIO_MODER_MODER10_1;
GPIOA->MODER |=
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
GPIO_MODER_MODER9_1;
RCC->CR |= RCC_CR_MSION;
GPIOA->AFR[1] |= 0X770;
TIM2->ARR =10000; RCC->APB2ENR |=RCC_APB2ENR_USART1EN;
TIM2->PSC =50; USART1->CR1 |= USART_CR1_TE;
// TIM2->CR1 |= TIM_CR1_CEN;
USART1->CR1 |= USART_CR1_UE;
//USART1->DR;
// TIM2->CR1 |= TIM_CR1_ARPE;
//USART1->SR;
TIM2->CR1 |= 0X81;
USART1->BRR = 0XD0;
while(1) //while(1)
{ { for(i=0;i<11;i++)
while(TIM2->CNT==TIM2->ARR) {
USART1->DR =ch[i];
{
while((USART1->SR & 0X80)==0);
GPIOB->ODR ^= 0xC0;
//for(i=0;i<500;i++);
TIM2->CNT =0X00;
}
}
}
} } }
5. USART2 TRANSMIT 6. rx and tx

#include "stm32l1xx.h"
#include "stm32l1xx.h"
int i; char in;
int i=0;
char ch[]= "value"; char a[25];
int main(void)
int main(void)
{
{ RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN; GPIOA->MODER |= GPIO_MODER_MODER10_1;
RCC->APB1ENR |= RCC_APB1ENR_USART2EN; GPIOA->MODER |= GPIO_MODER_MODER9_1;
GPIOA->AFR[1] |= 0x770;
GPIOA->MODER |=GPIO_MODER_MODER2_1; USART1->CR1 |=USART_CR1_RE;
USART1->CR1 |=USART_CR1_TE;
GPIOA->MODER |=GPIO_MODER_MODER3_1;
USART1->CR1 |=USART_CR1_UE;
GPIOA->AFR[0] |= 0x7700; USART1->BRR = 0xD0;
USART1->DR |=0X00;
USART2->CR1 |= USART_CR1_TE; while(1)
USART2->CR1 |= USART_CR1_RE; {
if(USART1->SR & 0X20)
USART2->CR1 |= USART_CR1_UE; {
in=USART1->DR;
USART2->BRR = 0xD0;

for(i=0;i<5;i++) a[i]=in;

{ USART1->DR=a[i];

USART2->DR=ch[i]; i++;
while((USART2->SR & 0X80)==0x00); }
}
}
}
}
7. threshold – 5 above green -5 below blue while(1)

#include "stm32l1xx.h" {

int in; if(USART1->SR & 0X20)

int i; {

int main(void) in=USART1->DR;

{ USART1->DR=in;

RCC->AHBENR |= RCC_AHBENR_GPIOAEN; }

RCC->AHBENR |= RCC_AHBENR_GPIOBEN; if(USART1->DR >= '5')

RCC->APB2ENR |= RCC_APB2ENR_USART1EN; {

GPIOA->MODER |= GPIO_MODER_MODER10_1; GPIOB->ODR =0x80;

GPIOA->MODER |= GPIO_MODER_MODER9_1; for(i=0;i<50;i++);

GPIOA->AFR[1] |= 0x770; GPIOB->ODR = 0x00;

USART1->CR1 |=USART_CR1_RE; }

USART1->CR1 |=USART_CR1_TE; else

USART1->CR1 |=USART_CR1_UE; {

USART1->BRR = 0xD0; GPIOB->ODR =0x40;

USART1->DR |=0X00; for(i=0;i<50;i++);

GPIOB->MODER |= GPIO_MODER_MODER7_0; GPIOB->ODR = 0x00;

GPIOB->MODER |= GPIO_MODER_MODER6_0; }

}
8 TO PRINT TILL 65 9. LED CONTROL USING USER SWITCH

#include "stm32l1xx.h" #include "stm32l1xx.h"


int i=0,j; int main (void)
int main(void)
{
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOB->MODER |= GPIO_MODER_MODER7_0;
RCC->APB1ENR |= RCC_APB1ENR_USART2EN;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOA->MODER |= GPIO_MODER_MODER3_1;
GPIOA->MODER |= 0x00;
GPIOA->MODER |= GPIO_MODER_MODER2_1;
while(1)
GPIOA->AFR[0] |= 0x770;

USART2->BRR =0xD0; {

USART2->CR1 |= USART_CR1_UE; if(GPIOA->IDR & 0x01)

USART2->CR1 |= USART_CR1_RE; {

USART2->CR1 |= USART_CR1_TE; GPIOB->ODR = 0x80;

USART2->DR = 0x00; }
while(i<='A') else
{
{
USART2->DR = i;
GPIOB->ODR = 0x00;
for(j=0;j<50000;j++);
}
i++;
}
while((USART2->SR & 0X80)==0x00);
}
}

}
10. TRANSMIT A DATA WHEN SWITCH IS PRESSED
BAUD RATE : 600
WHEN TRANSMITTING GLOW GREEN LED ELSE BLUE

#include "stm32l1xx.h"
int k;
char ch[] = "LAKSHMICHRIS";
int main (void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
GPIOB->MODER |= GPIO_MODER_MODER7_0;
GPIOB->MODER |= GPIO_MODER_MODER6_0;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOA->MODER |= 0x00;
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
USART1->BRR =0XD00;
USART1->CR1 |= USART_CR1_TE;
USART1->CR1 |= USART_CR1_UE;
GPIOA->AFR[1] |= 0X70;
GPIOA->MODER |= GPIO_MODER_MODER9_1;
while(1)
{
if(GPIOA->IDR & 0x01)
{
for(k=0;k<12;k++)
{
USART1->DR=ch[k];
while((USART1->SR & 0X80)==0);
GPIOB->ODR = 0X80;
}
}
else
GPIOB->ODR = 0X40;
}
}

Вам также может понравиться