Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.35 KB | None | 0 0
  1. /*----------------------------------------------------------------------------
  2.   initialize LCD Pins
  3.  *----------------------------------------------------------------------------*/
  4. void LCD_Initpins (void) {
  5.  
  6.   RCC->AHB1ENR    |=  ((1UL <<    3)  );   /* Enable GPIOD clock              */
  7.  
  8.   GPIOD->MODER    &= ~((3UL << 2* 0) |
  9.                        (3UL << 2* 1) |
  10.                        (3UL << 2* 2) |
  11.                        (3UL << 2* 3) |
  12.                        (3UL << 2* 4) |
  13.                        (3UL << 2* 5) |
  14.                        (3UL << 2* 6) |
  15.                        (3UL << 2* 7)  );   /* PD.0..7 is output               */
  16.   GPIOD->MODER    |=  ((1UL << 2* 0) |
  17.                        (1UL << 2* 1) |
  18.                        (1UL << 2* 2) |
  19.                        (1UL << 2* 3) |
  20.                        (1UL << 2* 4) |
  21.                        (1UL << 2* 5) |
  22.                        (1UL << 2* 6) |
  23.                        (1UL << 2* 7)  );
  24.   GPIOD->OTYPER   &= ~((1UL <<    0) |
  25.                        (1UL <<    1) |
  26.                        (1UL <<    2) |
  27.                        (1UL <<    3) |
  28.                        (1UL <<    4) |
  29.                        (1UL <<    5) |
  30.                        (1UL <<    6) |
  31.                        (1UL <<    7)  );   /* PD.0..7 is output Push-Pull     */
  32.   GPIOD->OSPEEDR  &= ~((3UL << 2* 0) |
  33.                        (3UL << 2* 1) |
  34.                        (3UL << 2* 2) |
  35.                        (3UL << 2* 3) |
  36.                        (3UL << 2* 4) |
  37.                        (3UL << 2* 5) |
  38.                        (3UL << 2* 6) |
  39.                        (3UL << 2* 7)  );   /* PD.0..7 is 50MHz Fast Speed     */
  40.   GPIOD->OSPEEDR  |=  ((2UL << 2* 0) |
  41.                        (2UL << 2* 1) |
  42.                        (2UL << 2* 2) |
  43.                        (2UL << 2* 3) |
  44.                        (2UL << 2* 4) |
  45.                        (2UL << 2* 5) |
  46.                        (2UL << 2* 6) |
  47.                        (2UL << 2* 7)  );
  48.   GPIOD->PUPDR    &= ~((3UL << 2* 0) |
  49.                        (3UL << 2* 1) |
  50.                        (3UL << 2* 2) |
  51.                        (3UL << 2* 3) |
  52.                        (3UL << 2* 4) |
  53.                        (3UL << 2* 5) |
  54.                        (3UL << 2* 6) |
  55.                        (3UL << 2* 7)  );   /* PD.0..7 is Pull up              */
  56.   GPIOD->PUPDR    |=  ((1UL << 2* 0) |
  57.                        (1UL << 2* 1) |
  58.                        (1UL << 2* 2) |
  59.                        (1UL << 2* 3) |
  60.                        (1UL << 2* 4) |
  61.                        (1UL << 2* 5) |
  62.                        (1UL << 2* 6) |
  63.                        (1UL << 2* 7)  );
  64.  
  65.  
  66.   // PORT B LCD Control Lines
  67.   RCC->AHB1ENR    |=  ((1UL <<    1)  );   /* Enable GPIOB clock              */
  68.  
  69.   GPIOB->MODER    &= ~((3UL << 2* 0) |
  70.                        (3UL << 2* 1) |
  71.                        (3UL << 2* 2)  );   /* PB.0..7 is output               */
  72.   GPIOB->MODER    |=  ((1UL << 2* 0) |
  73.                        (1UL << 2* 1) |
  74.                        (1UL << 2* 2)  );
  75.   GPIOB->OTYPER   &= ~((1UL <<    0) |
  76.                        (1UL <<    1) |
  77.                        (1UL <<    2)  );   /* PB.0..7 is output Push-Pull     */
  78.   GPIOB->OSPEEDR  &= ~((3UL << 2* 0) |
  79.                        (3UL << 2* 1) |
  80.                        (3UL << 2* 2)  );   /* PB.0..7 is 50MHz Fast Speed     */
  81.   GPIOB->OSPEEDR  |=  ((2UL << 2* 0) |
  82.                        (2UL << 2* 1) |
  83.                        (2UL << 2* 2)  );
  84.   GPIOB->PUPDR    &= ~((3UL << 2* 0) |
  85.                        (3UL << 2* 1) |
  86.                        (3UL << 2* 2)  );   /* PB.0..7 is Pull up              */
  87.   GPIOB->PUPDR    |=  ((1UL << 2* 0) |
  88.                        (1UL << 2* 1) |
  89.                        (1UL << 2* 2)  );
  90.  
  91.   // PORT A LCD Driver IC Enable Line
  92.   RCC->AHB1ENR    |=  ((1UL <<    0)  );   /* Enable GPIOA clock              */
  93.  
  94.   GPIOA->MODER    &= ~((3UL << 2*15)  );   /* PA.0..7 is output               */
  95.   GPIOA->MODER    |=  ((1UL << 2*15)  );
  96.   GPIOA->OTYPER   &= ~((1UL <<   15)  );   /* PA.15 is output Push-Pull     */
  97.   GPIOA->OSPEEDR  &= ~((3UL << 2*15)  );   /* PA.15 is 50MHz Fast Speed     */
  98.   GPIOA->OSPEEDR  |=  ((2UL << 2*15)  );
  99.   GPIOA->PUPDR    &= ~((3UL << 2*15)  );   /* PA.15 is Pull up              */
  100.   GPIOA->PUPDR    |=  ((1UL << 2*15)  );
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement