0% found this document useful (0 votes)
14 views7 pages

Embedded

Imp questions
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views7 pages

Embedded

Imp questions
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

GPIO1A

#include "stm32f4xx.h"
void delayMs(int n);
int main(void) {
RCC->AHB1ENR |= 1
GPIOA->MODER &= ~0x00000C00; GPIOA->MODER |= 0x00000400;
while(1) {
GPIOA->ODR |= 0x00000020;
delayMs(500);
GPIOA->ODR &= ~0x00000020;
delayMs(500); } }
void delayMs(int n) {
int i;
for (; n > 0; n--)
for (i = 0; i < 3195; i++) ; }
GPLO1B
#include "stm32f4xx.h"
int main(void) {
RCC->AHB1ENR |= 4;
RCC->AHB1ENR |= 1;
GPIOA->MODER &= ~0x00000C00;
GPIOA->MODER |= 0x00000400;
GPIOC->MODER &= ~0x0C000000;
while(1) {
if (GPIOC->IDR & 0x2000)
GPIOA->BSRR = 0x00200000; else
GPIOA->BSRR = 0x00000020; }
Seven segment
#include "stm32f4xx.h"
void delayMs (int n);
int main(void)
{
RCC->AHB1ENR |= 2;
RCC->AHB1ENR |= 4;
GPIOC->MODER &= ~0x0000FFFF;
GPIOC->MODER |=0x00005555;
GPIOB->MODER &= ~0x0000000F;
GPIOB->MODER |= 0x00000005;
for(;;)
{
GPIOC->ODR = 0x0007;
GPIOB->BSRR =0x00010000;
GPIOB->BSRR = 0x00000002;
delayMs(8);
GPIOC->ODR = 0x006D;
GPIOB->BSRR = 0x00020000;
GPIOB->BSRR = 0x00000001;
delayMs(8);
}
}
void delayMs (int n)
{
int i;
for (; n > 0; n--)
for (i = 0; i < 3195; i++);
}
LCD
#include "stm32f4xx.h"
#define RS 0x20
#define RW 0x40
#define EN 0x80
void delayMs(int n);
void LCD_command(unsigned char command);
void LCD_data(char data);
void LCD_init(void);
void PORTS_init(void);
int main(void) {
LCD_init();
delayMs(100);
while(1) {
LCD_data('H');
delayMs(300);
LCD_data('E');
delayMs(300);
LCD_data('L');
delayMs(300);
LCD_data('L');
delayMs(300);
LCD_data('O');
delayMs(5000);
LCD_command(1);}}
void LCD_init(void) {
PORTS_init();
delayMs(30);
LCD_command(0x30);
delayMs(10);
LCD_command(0x30);
delayMs(1);
LCD_command(0x30);
LCD_command(0x38);
LCD_command(0x06);
LCD_command(0x01);
LCD_command(0x0F); }
void PORTS_init(void) {
RCC->AHB1ENR |= 0x06;
GPIOB->MODER &= ~0x0000FC00;
GPIOB->MODER |= 0x00005400;
GPIOB->BSRR = 0x00C00000;
GPIOC->MODER &= ~0x0000FFFF;
GPIOC->MODER |= 0x00005555;}
void LCD_command(unsigned char command) {
GPIOB->BSRR = (RS | RW) << 16;
GPIOC->ODR = command;
GPIOB->BSRR = EN;
delayMs(0);
GPIOB->BSRR = EN << 16;
if (command < 4)
delayMs(2); else
delayMs(1); }
void LCD_data(char data) {
GPIOB->BSRR = RS;
GPIOC->ODR = data;
GPIOB->BSRR = EN;
delayMs(0);
GPIOB->BSRR = EN << 16; delayMs(1); }
void delayMs(int n) {
int i;
for (; n > 0; n--)
for (i = 0; i < 3195; i++) ;}
KEYPAD
#include "stm32f4xx.h"
void delay(void);
void keypad_init(void);
char keypad_kbhit(void);
int main(void) {
keypad_init();
RCC->AHB1ENR |= 1;
GPIOA->MODER &= ~0xC0000C00;
GPIOA->MODER |= 0x00000400;
while(1) {
if (keypad_kbhit() != 0)
GPIOA->BSRR = 0x00000020; else
GPIOA->BSRR = 0x00200000; }}
void keypad_init(void) {
RCC->AHB1ENR |= 0x14;
GPIOC->MODER &= ~0x0000FFFF;
GPIOC->PUPDR = 0x00000055; }
char keypad_kbhit(void)
{
int col;
GPIOC->MODER = 0x00005500;
GPIOC->BSRR = 0x00F00000;
delay();
col = GPIOC->IDR & 0x000F;
GPIOC->MODER &= ~0x0000FF00;
if (col == 0x000F)
return 0;
else
return 1; }
void delay(void) {
int i;
for (i = 0; i < 20; i++) ; }
serial
#include "stm32f4xx.h"
void USART2_init(void);
void USART2_write(int c);
void delayMs(int);
int main (void){
char message[] = "Hello\r\n";
int i;
USART2_init();
while(1) {
for (i = 0; i < 7; i++) {
USART2_write(message[i]); }
delayMs(5000); }
}void USART2_init (void) {
RCC->AHB1ENR |= 1;
RCC->APB1ENR |= 0x20000;
GPIOA->AFR[0] &= ~0x0F00;
GPIOA->AFR[0] |= 0x0700;
GPIOA->MODER &= ~0x0030;
GPIOA->MODER |= 0x0020;
USART2->BRR = 0x0683;
USART2->CR1 = 0x0008;
USART2->CR2 = 0x0000;
USART2->CR3 = 0x0000;
USART2->CR1 |= 0x2000; }
void delayMs(int n) {
int i;
for (; n > 0; n--)
for (i = 0; i < 2000; i++) ; }
void USART2_write (int ch) {
while (!(USART2->SR & 0x0080)) {}
USART2->DR = (ch & 0xFF);}
OPTOISOLATOR
#include "stm32f4xx.h"
void delayMs(int n);
int main(void)
{
RCC->AHB1ENR |= 1;
GPIOA->MODER &= ~0x00000C00;
GPIOA->MODER |= 0x00000400;
while(1) {
GPIOA->BSRR = 0x00000020;
delayMs(500);
GPIOA->BSRR = 0x00200000;
delayMs(500);}}
void delayMs(int n) {
int i;
for (; n > 0; n--)
for (i = 0; i < 3195; i++) ;}
STEPPER MOTOR
#include "stm32f4xx.h"
void delayMs(int n);
int main(void) {
const char steps[ ] = {0x90, 0x30, 0x60, 0xC0};
int i;
RCC->AHB1ENR |= 1;
GPIOA->MODER &=~0x0000FF00; GPIOA->MODER |= 0x00005500;
for (;;) {
GPIOA->ODR = steps[i++ & 3];
delayMs(100);}}
void delayMs(int n)
{
int i;
for (; n > 0; n--)
for (i = 0; i < 3195; i++) ;}
DAC0808
#include "stm32f4xx.h"
int main(void) {
int data;
RCC->AHB1ENR |= 1;
GPIOA->MODER |= 0x00000300;
RCC->APB1ENR |= 1 << 29;
DAC->CR |= 1;
while(1) {
DAC->DHR12R1 = data++ & 0x0FFF;}}

Lm35
#include "stm32f4xx.h"
#include <stdio.h>
void USART2_init(void);
int USART2_write(int c);
void delayMs(int n);
int main (void) {
int result;
double temp;
RCC->AHB1ENR |= 4;
GPIOC->MODER |= 3;
RCC->APB2ENR |= 0x00000100;
ADC1->CR2 = 0;
ADC1->SQR3 = 10;
ADC1->SQR1 = 0;
ADC1->CR2 |= 1;
USART2_init();
while (1) {
printf("LM34 Temperature Sensor\r\n");
ADC1->CR2 |= 0x40000000;
while(!(ADC1->SR & 2)) {}
result = ADC1->DR;
temp = (double)result / 4095 * 330;
printf("%d, %.2f\r\n", result, temp);
delayMs(500);}}
void USART2_init (void) {
RCC->AHB1ENR |= 1;
RCC->APB1ENR |= 0x20000;
USART2->BRR = 0x0683;
USART2->CR1 = 0x000C;
USART2->CR2 = 0x0000;
USART2->CR3 = 0x0000;
USART2->CR1 |= 0x2000;
GPIOA->AFR[0] &= ~0x0F00;
GPIOA->AFR[0] |= 0x0700;
GPIOA->MODER &= ~0x0030;
GPIOA->MODER |= 0x0020; }
int USART2_write (int ch) {
while (!(USART2->SR & 0x0080)) {}
USART2->DR = ch;
return ch;}
struct _FILE { int handle; };
FILE _stdout = {1};
int fputc(int c, FILE *f) {
return USART2_write(c); }
void delayMs(int n) {
int i;
for (; n > 0; n--)
for (i = 0; i < 3195; i++) ;
}

You might also like