Advertisement
Guest User

Untitled

a guest
May 15th, 2012
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.53 KB | None | 0 0
  1.  
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdio.h>
  5.  
  6. #include "libmaple.h"
  7. #include "boards.h"
  8. #include "gpio.h"
  9. #include "delay.h"
  10. #include "usart.h"
  11. #include "dma.h"
  12.  
  13. #define LEV_SENSE_I2C_ADDR  0x55
  14. #define TEMP_SENSE_I2C_ADDR 0x48
  15.  
  16. #define STR_SIZE 11
  17. uint8 tx_buf[STR_SIZE];
  18.  
  19. // Force init to be called *first*, i.e. before static object allocation.
  20. // Otherwise, statically allocated objects that need libmaple may fail.
  21. __attribute__((constructor)) void premain() {
  22.     init();
  23. }
  24.  
  25. static void dma_handler()
  26. {
  27.     dma_disable(DMA1, DMA_CH1);
  28. }
  29.  
  30. int main(void)
  31. {
  32.     gpio_set_mode(GPIOB, 3, GPIO_OUTPUT_PP);
  33.     gpio_set_mode(GPIOA, 9, GPIO_AF_OUTPUT_PP);
  34.     gpio_set_mode(GPIOA, 10, GPIO_INPUT_FLOATING);
  35.    
  36.     usart_init(USART1);
  37.     usart_set_baud_rate(USART1, PCLK2, 115200);
  38.     usart_enable(USART1);
  39.     USART1->regs->CR3 |= USART_CR3_DMAT;
  40.  
  41.     snprintf(tx_buf, STR_SIZE-1, "test dma\r\n");
  42.    
  43.     dma_init(DMA1);
  44.     dma_mode_flags fl = (DMA_FROM_MEM | DMA_MINC_MODE | DMA_TRNS_CMPLT);
  45.     dma_setup_transfer(DMA1, DMA_CH1, &(USART1->regs->DR), DMA_SIZE_32BITS, tx_buf, DMA_SIZE_8BITS, fl);
  46.     dma_set_num_transfers(DMA1, DMA_CH1, STR_SIZE);
  47.     dma_attach_interrupt(DMA1, DMA_CH1, dma_handler);
  48.     dma_enable(DMA1, DMA_CH1);
  49.     USART1->regs->DR = tx_buf[0];
  50.    
  51.     uint8 toggle = 0;
  52.     while(1) {
  53.         if (toggle == 0)
  54.             toggle = 1;
  55.         else
  56.             toggle = 0;
  57.         gpio_write_bit(GPIOB, 3, toggle);
  58.         delay_s(1);
  59.     }
  60.  
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement