Bootload from SD card to sector 0, and jump to sector 24 where new firmware resides
Fork of Panel-Controller-Bootloader by
usart.c@2:0fa89ba8f6fe, 2015-04-22 (annotated)
- Committer:
- bonchenko
- Date:
- Wed Apr 22 10:18:55 2015 +0000
- Revision:
- 2:0fa89ba8f6fe
- Parent:
- 0:c3a652eff606
Bootloader from SD card works perfectly. Compiled with offset in EmBlocks, ADE cannot print readings - but its happened without bootloader too. The problem is Emblocks compiler settings
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bonchenko | 0:c3a652eff606 | 1 | #include "usart.h" |
bonchenko | 0:c3a652eff606 | 2 | |
bonchenko | 0:c3a652eff606 | 3 | void USART_Initialise(void) |
bonchenko | 0:c3a652eff606 | 4 | { |
bonchenko | 0:c3a652eff606 | 5 | USART_InitTypeDef usartConfig; |
bonchenko | 0:c3a652eff606 | 6 | |
bonchenko | 0:c3a652eff606 | 7 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); |
bonchenko | 0:c3a652eff606 | 8 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); |
bonchenko | 0:c3a652eff606 | 9 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); |
bonchenko | 0:c3a652eff606 | 10 | USART_Cmd(USART1, ENABLE); |
bonchenko | 0:c3a652eff606 | 11 | |
bonchenko | 0:c3a652eff606 | 12 | usartConfig.USART_BaudRate = 115200; |
bonchenko | 0:c3a652eff606 | 13 | usartConfig.USART_WordLength = USART_WordLength_8b; |
bonchenko | 0:c3a652eff606 | 14 | usartConfig.USART_StopBits = USART_StopBits_1; |
bonchenko | 0:c3a652eff606 | 15 | usartConfig.USART_Parity = USART_Parity_No; |
bonchenko | 0:c3a652eff606 | 16 | usartConfig.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; |
bonchenko | 0:c3a652eff606 | 17 | usartConfig.USART_HardwareFlowControl = |
bonchenko | 0:c3a652eff606 | 18 | USART_HardwareFlowControl_None; |
bonchenko | 0:c3a652eff606 | 19 | USART_Init(USART1, &usartConfig); |
bonchenko | 0:c3a652eff606 | 20 | |
bonchenko | 0:c3a652eff606 | 21 | GPIO_InitTypeDef gpioConfig; |
bonchenko | 0:c3a652eff606 | 22 | |
bonchenko | 0:c3a652eff606 | 23 | //PA9 = USART1.TX => Alternative Function Output |
bonchenko | 0:c3a652eff606 | 24 | gpioConfig.GPIO_Mode = GPIO_Mode_AF_PP; |
bonchenko | 0:c3a652eff606 | 25 | gpioConfig.GPIO_Pin = GPIO_Pin_9; |
bonchenko | 0:c3a652eff606 | 26 | gpioConfig.GPIO_Speed = GPIO_Speed_2MHz; |
bonchenko | 0:c3a652eff606 | 27 | GPIO_Init(GPIOA, &gpioConfig); |
bonchenko | 0:c3a652eff606 | 28 | |
bonchenko | 0:c3a652eff606 | 29 | //PA10 = USART1.RX => Input |
bonchenko | 0:c3a652eff606 | 30 | gpioConfig.GPIO_Mode = GPIO_Mode_IN_FLOATING; |
bonchenko | 0:c3a652eff606 | 31 | gpioConfig.GPIO_Pin = GPIO_Pin_10; |
bonchenko | 0:c3a652eff606 | 32 | GPIO_Init(GPIOA, &gpioConfig); |
bonchenko | 0:c3a652eff606 | 33 | } |
bonchenko | 0:c3a652eff606 | 34 | |
bonchenko | 0:c3a652eff606 | 35 | void USART_SendString(char* message) |
bonchenko | 0:c3a652eff606 | 36 | { |
bonchenko | 0:c3a652eff606 | 37 | while(*message) |
bonchenko | 0:c3a652eff606 | 38 | { |
bonchenko | 0:c3a652eff606 | 39 | while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); |
bonchenko | 0:c3a652eff606 | 40 | USART_SendData(USART1, *message++); |
bonchenko | 0:c3a652eff606 | 41 | } |
bonchenko | 0:c3a652eff606 | 42 | } |
bonchenko | 0:c3a652eff606 | 43 | |
bonchenko | 0:c3a652eff606 | 44 | unsigned char USART_ReadByteSync(USART_TypeDef *USARTx) |
bonchenko | 0:c3a652eff606 | 45 | { |
bonchenko | 0:c3a652eff606 | 46 | while ((USARTx->SR & USART_SR_RXNE) == 0) |
bonchenko | 0:c3a652eff606 | 47 | { |
bonchenko | 0:c3a652eff606 | 48 | } |
bonchenko | 0:c3a652eff606 | 49 | |
bonchenko | 0:c3a652eff606 | 50 | return (unsigned char)USART_ReceiveData(USARTx); |
bonchenko | 0:c3a652eff606 | 51 | } |