zain aftab / mbed-src2

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Fri Sep 04 09:30:10 2015 +0100
Revision:
620:034e698bc035
Child:
632:ff681937ffd8
Synchronized with git revision 92d1bfad30082571776c810a56fd471d30514ccf

Full URL: https://github.com/mbedmicro/mbed/commit/92d1bfad30082571776c810a56fd471d30514ccf/

Change directory structure and move files.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 620:034e698bc035 1 /**
mbed_official 620:034e698bc035 2 ******************************************************************************
mbed_official 620:034e698bc035 3 * @file W7500x_uart.c
mbed_official 620:034e698bc035 4 * @author
mbed_official 620:034e698bc035 5 * @version
mbed_official 620:034e698bc035 6 * @date
mbed_official 620:034e698bc035 7 * @brief
mbed_official 620:034e698bc035 8 ******************************************************************************
mbed_official 620:034e698bc035 9 * @attention
mbed_official 620:034e698bc035 10 *
mbed_official 620:034e698bc035 11 *
mbed_official 620:034e698bc035 12 ******************************************************************************
mbed_official 620:034e698bc035 13 */
mbed_official 620:034e698bc035 14
mbed_official 620:034e698bc035 15 /* Includes ------------------------------------------------------------------*/
mbed_official 620:034e698bc035 16 #include "W7500x.h"
mbed_official 620:034e698bc035 17 #include "W7500x_uart.h"
mbed_official 620:034e698bc035 18
mbed_official 620:034e698bc035 19 void UART_StructInit(UART_InitTypeDef* UART_InitStruct)
mbed_official 620:034e698bc035 20 {
mbed_official 620:034e698bc035 21 /* UART_InitStruct members default value */
mbed_official 620:034e698bc035 22 UART_InitStruct->UART_BaudRate = 115200;
mbed_official 620:034e698bc035 23 UART_InitStruct->UART_WordLength = UART_WordLength_8b ;
mbed_official 620:034e698bc035 24 UART_InitStruct->UART_StopBits = UART_StopBits_1;
mbed_official 620:034e698bc035 25 UART_InitStruct->UART_Parity = UART_Parity_No ;
mbed_official 620:034e698bc035 26 UART_InitStruct->UART_Mode = UART_Mode_Rx | UART_Mode_Tx;
mbed_official 620:034e698bc035 27 UART_InitStruct->UART_HardwareFlowControl = UART_HardwareFlowControl_None ;
mbed_official 620:034e698bc035 28 }
mbed_official 620:034e698bc035 29
mbed_official 620:034e698bc035 30 void UART_DeInit(UART_TypeDef *UARTx)
mbed_official 620:034e698bc035 31 {
mbed_official 620:034e698bc035 32
mbed_official 620:034e698bc035 33 }
mbed_official 620:034e698bc035 34
mbed_official 620:034e698bc035 35 uint32_t UART_Init(UART_TypeDef *UARTx, UART_InitTypeDef* UART_InitStruct)
mbed_official 620:034e698bc035 36 {
mbed_official 620:034e698bc035 37 float baud_divisor;
mbed_official 620:034e698bc035 38 uint32_t tmpreg=0x00, uartclock=0x00;
mbed_official 620:034e698bc035 39 uint32_t integer_baud = 0x00, fractional_baud = 0x00;
mbed_official 620:034e698bc035 40
mbed_official 620:034e698bc035 41 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 42 assert_param(IS_UART_WORD_LENGTH(UART_InitStruct->UART_WordLength));
mbed_official 620:034e698bc035 43 assert_param(IS_UART_PARITY(UART_InitStruct->UART_Parity));
mbed_official 620:034e698bc035 44 assert_param(IS_UART_STOPBITS(UART_InitStruct->UART_StopBits));
mbed_official 620:034e698bc035 45 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(UART_InitStruct->UART_HardwareFlowControl));
mbed_official 620:034e698bc035 46 assert_param(IS_UART_MODE(UART_InitStruct->UART_Mode));
mbed_official 620:034e698bc035 47
mbed_official 620:034e698bc035 48
mbed_official 620:034e698bc035 49 UARTx->CR &= ~(UART_CR_UARTEN);
mbed_official 620:034e698bc035 50
mbed_official 620:034e698bc035 51 // Set baudrate
mbed_official 620:034e698bc035 52 CRG->UARTCLK_SSR = CRG_UARTCLK_SSR_RCLK; // Set UART Clock using internal Oscilator ( 8MHz )
mbed_official 620:034e698bc035 53 uartclock = (8000000UL) / (1 << CRG->UARTCLK_PVSR);
mbed_official 620:034e698bc035 54
mbed_official 620:034e698bc035 55 baud_divisor = ((float)uartclock / (16 * UART_InitStruct->UART_BaudRate));
mbed_official 620:034e698bc035 56 integer_baud = (uint32_t)baud_divisor;
mbed_official 620:034e698bc035 57 fractional_baud = (uint32_t)((baud_divisor - integer_baud) * 64 + 0.5);
mbed_official 620:034e698bc035 58
mbed_official 620:034e698bc035 59 UARTx->IBRD = integer_baud;
mbed_official 620:034e698bc035 60 UARTx->FBRD = fractional_baud;
mbed_official 620:034e698bc035 61
mbed_official 620:034e698bc035 62
mbed_official 620:034e698bc035 63 tmpreg = UARTx->LCR_H;
mbed_official 620:034e698bc035 64 tmpreg &= ~(0x00EE);
mbed_official 620:034e698bc035 65 tmpreg |= (UART_InitStruct->UART_WordLength | UART_InitStruct->UART_StopBits | UART_InitStruct->UART_Parity);
mbed_official 620:034e698bc035 66 UARTx->LCR_H |= tmpreg;
mbed_official 620:034e698bc035 67
mbed_official 620:034e698bc035 68 tmpreg = UARTx->CR;
mbed_official 620:034e698bc035 69 tmpreg &= ~(UART_CR_CTSEn | UART_CR_RTSEn | UART_CR_RXE | UART_CR_TXE | UART_CR_UARTEN);
mbed_official 620:034e698bc035 70 tmpreg |= (UART_InitStruct->UART_Mode | UART_InitStruct->UART_HardwareFlowControl);
mbed_official 620:034e698bc035 71 UARTx->CR |= tmpreg;
mbed_official 620:034e698bc035 72
mbed_official 620:034e698bc035 73 UARTx->CR |= UART_CR_UARTEN;
mbed_official 620:034e698bc035 74
mbed_official 620:034e698bc035 75 return 0;
mbed_official 620:034e698bc035 76 }
mbed_official 620:034e698bc035 77
mbed_official 620:034e698bc035 78
mbed_official 620:034e698bc035 79 void UART_SendData(UART_TypeDef* UARTx, uint16_t Data)
mbed_official 620:034e698bc035 80 {
mbed_official 620:034e698bc035 81 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 82
mbed_official 620:034e698bc035 83 UARTx->DR = Data;
mbed_official 620:034e698bc035 84 }
mbed_official 620:034e698bc035 85
mbed_official 620:034e698bc035 86
mbed_official 620:034e698bc035 87 uint16_t UART_ReceiveData(UART_TypeDef* UARTx)
mbed_official 620:034e698bc035 88 {
mbed_official 620:034e698bc035 89 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 90
mbed_official 620:034e698bc035 91 return (uint16_t)(UARTx->DR);
mbed_official 620:034e698bc035 92 }
mbed_official 620:034e698bc035 93
mbed_official 620:034e698bc035 94
mbed_official 620:034e698bc035 95 void UART_SendBreak(UART_TypeDef* UARTx)
mbed_official 620:034e698bc035 96 {
mbed_official 620:034e698bc035 97 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 98
mbed_official 620:034e698bc035 99 UARTx->LCR_H |= UART_LCR_H_BRK;
mbed_official 620:034e698bc035 100 }
mbed_official 620:034e698bc035 101
mbed_official 620:034e698bc035 102
mbed_official 620:034e698bc035 103 FlagStatus UART_GetRecvStatus(UART_TypeDef* UARTx, uint16_t UART_RECV_STATUS)
mbed_official 620:034e698bc035 104 {
mbed_official 620:034e698bc035 105 FlagStatus bitstatus = RESET;
mbed_official 620:034e698bc035 106
mbed_official 620:034e698bc035 107 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 108 assert_param(IS_UART_RECV_STATUS(UART_RECV_STATUS));
mbed_official 620:034e698bc035 109
mbed_official 620:034e698bc035 110 if( (UARTx->STATUS.RSR & UART_RECV_STATUS) != (uint16_t)RESET)
mbed_official 620:034e698bc035 111 {
mbed_official 620:034e698bc035 112 bitstatus = SET;
mbed_official 620:034e698bc035 113 }
mbed_official 620:034e698bc035 114 else
mbed_official 620:034e698bc035 115 {
mbed_official 620:034e698bc035 116 bitstatus = RESET;
mbed_official 620:034e698bc035 117 }
mbed_official 620:034e698bc035 118
mbed_official 620:034e698bc035 119 return bitstatus;
mbed_official 620:034e698bc035 120 }
mbed_official 620:034e698bc035 121
mbed_official 620:034e698bc035 122
mbed_official 620:034e698bc035 123 void UART_ClearRecvStatus(UART_TypeDef* UARTx, uint16_t UART_RECV_STATUS)
mbed_official 620:034e698bc035 124 {
mbed_official 620:034e698bc035 125 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 126 assert_param(IS_UART_RECV_STATUS(UART_RECV_STATUS));
mbed_official 620:034e698bc035 127
mbed_official 620:034e698bc035 128 UARTx->STATUS.ECR = (uint16_t)UART_RECV_STATUS;
mbed_official 620:034e698bc035 129 }
mbed_official 620:034e698bc035 130
mbed_official 620:034e698bc035 131
mbed_official 620:034e698bc035 132 FlagStatus UART_GetFlagStatus(UART_TypeDef* UARTx, uint16_t UART_FLAG)
mbed_official 620:034e698bc035 133 {
mbed_official 620:034e698bc035 134 FlagStatus bitstatus = RESET;
mbed_official 620:034e698bc035 135
mbed_official 620:034e698bc035 136 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 137 assert_param(IS_UART_FLAG(UART_FLAG));
mbed_official 620:034e698bc035 138
mbed_official 620:034e698bc035 139 if ((UARTx->FR & UART_FLAG) != (uint16_t)RESET)
mbed_official 620:034e698bc035 140 {
mbed_official 620:034e698bc035 141 bitstatus = SET;
mbed_official 620:034e698bc035 142 }
mbed_official 620:034e698bc035 143 else
mbed_official 620:034e698bc035 144 {
mbed_official 620:034e698bc035 145 bitstatus = RESET;
mbed_official 620:034e698bc035 146 }
mbed_official 620:034e698bc035 147
mbed_official 620:034e698bc035 148 return bitstatus;
mbed_official 620:034e698bc035 149
mbed_official 620:034e698bc035 150 }
mbed_official 620:034e698bc035 151
mbed_official 620:034e698bc035 152 /*
mbed_official 620:034e698bc035 153 void UART_ClearFlag(UART_TypeDef* UARTx, uint16_t UART_FLAG)
mbed_official 620:034e698bc035 154 {
mbed_official 620:034e698bc035 155
mbed_official 620:034e698bc035 156 }
mbed_official 620:034e698bc035 157 */
mbed_official 620:034e698bc035 158
mbed_official 620:034e698bc035 159 void UART_ITConfig(UART_TypeDef* UARTx, uint16_t UART_IT, FunctionalState NewState)
mbed_official 620:034e698bc035 160 {
mbed_official 620:034e698bc035 161 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 162 assert_param(IS_UART_IT_FLAG(UART_IT));
mbed_official 620:034e698bc035 163
mbed_official 620:034e698bc035 164 if ( NewState != DISABLE )
mbed_official 620:034e698bc035 165 {
mbed_official 620:034e698bc035 166 UARTx->IMSC |= UART_IT;
mbed_official 620:034e698bc035 167 }
mbed_official 620:034e698bc035 168 else
mbed_official 620:034e698bc035 169 {
mbed_official 620:034e698bc035 170 UARTx->ICR |= UART_IT;
mbed_official 620:034e698bc035 171 }
mbed_official 620:034e698bc035 172 }
mbed_official 620:034e698bc035 173
mbed_official 620:034e698bc035 174
mbed_official 620:034e698bc035 175 ITStatus UART_GetITStatus(UART_TypeDef* UARTx, uint16_t UART_IT)
mbed_official 620:034e698bc035 176 {
mbed_official 620:034e698bc035 177 ITStatus bitstatus = RESET;
mbed_official 620:034e698bc035 178
mbed_official 620:034e698bc035 179 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 180 assert_param(IS_UART_IT_FLAG(UART_IT));
mbed_official 620:034e698bc035 181
mbed_official 620:034e698bc035 182 if ((UARTx->MIS & UART_IT) != (uint16_t)RESET)
mbed_official 620:034e698bc035 183 {
mbed_official 620:034e698bc035 184 bitstatus = SET;
mbed_official 620:034e698bc035 185 }
mbed_official 620:034e698bc035 186 else
mbed_official 620:034e698bc035 187 {
mbed_official 620:034e698bc035 188 bitstatus = RESET;
mbed_official 620:034e698bc035 189 }
mbed_official 620:034e698bc035 190
mbed_official 620:034e698bc035 191 return bitstatus;
mbed_official 620:034e698bc035 192 }
mbed_official 620:034e698bc035 193
mbed_official 620:034e698bc035 194 void UART_ClearITPendingBit(UART_TypeDef* UARTx, uint16_t UART_IT)
mbed_official 620:034e698bc035 195 {
mbed_official 620:034e698bc035 196 assert_param(IS_UART_01_PERIPH(UARTx));
mbed_official 620:034e698bc035 197 assert_param(IS_UART_IT_FLAG(UART_IT));
mbed_official 620:034e698bc035 198
mbed_official 620:034e698bc035 199 UARTx->ICR |= UART_IT;
mbed_official 620:034e698bc035 200 }
mbed_official 620:034e698bc035 201
mbed_official 620:034e698bc035 202
mbed_official 620:034e698bc035 203 void S_UART_DeInit()
mbed_official 620:034e698bc035 204 {
mbed_official 620:034e698bc035 205
mbed_official 620:034e698bc035 206 }
mbed_official 620:034e698bc035 207
mbed_official 620:034e698bc035 208 uint32_t S_UART_Init(uint32_t baud)
mbed_official 620:034e698bc035 209 {
mbed_official 620:034e698bc035 210 uint32_t tmpreg=0x00;
mbed_official 620:034e698bc035 211 uint32_t uartclock = 0x00, integer_baud = 0x00;
mbed_official 620:034e698bc035 212
mbed_official 620:034e698bc035 213 assert_param(IS_UART_MODE(S_UART_InitStruct->UART_Mode));
mbed_official 620:034e698bc035 214
mbed_official 620:034e698bc035 215 if(CRG->FCLK_SSR == CRG_FCLK_SSR_RCLK)
mbed_official 620:034e698bc035 216 {
mbed_official 620:034e698bc035 217 uartclock = INTERN_XTAL;
mbed_official 620:034e698bc035 218 }
mbed_official 620:034e698bc035 219 else if(CRG->FCLK_SSR == CRG_FCLK_SSR_OCLK)
mbed_official 620:034e698bc035 220 {
mbed_official 620:034e698bc035 221 uartclock = EXTERN_XTAL;
mbed_official 620:034e698bc035 222 }
mbed_official 620:034e698bc035 223 else
mbed_official 620:034e698bc035 224 {
mbed_official 620:034e698bc035 225 uartclock = GetSystemClock();
mbed_official 620:034e698bc035 226 }
mbed_official 620:034e698bc035 227
mbed_official 620:034e698bc035 228 integer_baud = (uint32_t)(uartclock / baud);
mbed_official 620:034e698bc035 229 UART2->BAUDDIV = integer_baud;
mbed_official 620:034e698bc035 230
mbed_official 620:034e698bc035 231 tmpreg = UART2->CTRL;
mbed_official 620:034e698bc035 232 tmpreg &= ~(S_UART_CTRL_RX_EN | S_UART_CTRL_TX_EN);
mbed_official 620:034e698bc035 233 tmpreg |= (S_UART_CTRL_RX_EN | S_UART_CTRL_TX_EN);
mbed_official 620:034e698bc035 234 UART2->CTRL = tmpreg;
mbed_official 620:034e698bc035 235
mbed_official 620:034e698bc035 236 return 0;
mbed_official 620:034e698bc035 237 }
mbed_official 620:034e698bc035 238
mbed_official 620:034e698bc035 239 void S_UART_SendData(uint16_t Data)
mbed_official 620:034e698bc035 240 {
mbed_official 620:034e698bc035 241 while(UART2->STATE & S_UART_STATE_TX_BUF_FULL);
mbed_official 620:034e698bc035 242 UART2->DATA = Data;
mbed_official 620:034e698bc035 243 }
mbed_official 620:034e698bc035 244
mbed_official 620:034e698bc035 245 uint16_t S_UART_ReceiveData()
mbed_official 620:034e698bc035 246 {
mbed_official 620:034e698bc035 247 return (uint16_t)(UART2->DATA);
mbed_official 620:034e698bc035 248 }
mbed_official 620:034e698bc035 249
mbed_official 620:034e698bc035 250
mbed_official 620:034e698bc035 251 FlagStatus S_UART_GetFlagStatus(uint16_t S_UART_FLAG)
mbed_official 620:034e698bc035 252 {
mbed_official 620:034e698bc035 253 FlagStatus bitstatus = RESET;
mbed_official 620:034e698bc035 254
mbed_official 620:034e698bc035 255 assert_param(IS_S_UART_FLAG(S_UART_FLAG));
mbed_official 620:034e698bc035 256
mbed_official 620:034e698bc035 257 if ((UART2->STATE & S_UART_FLAG) != (uint16_t)RESET)
mbed_official 620:034e698bc035 258 {
mbed_official 620:034e698bc035 259 bitstatus = SET;
mbed_official 620:034e698bc035 260 }
mbed_official 620:034e698bc035 261 else
mbed_official 620:034e698bc035 262 {
mbed_official 620:034e698bc035 263 bitstatus = RESET;
mbed_official 620:034e698bc035 264 }
mbed_official 620:034e698bc035 265
mbed_official 620:034e698bc035 266 return bitstatus;
mbed_official 620:034e698bc035 267 }
mbed_official 620:034e698bc035 268
mbed_official 620:034e698bc035 269
mbed_official 620:034e698bc035 270 void S_UART_ITConfig(uint16_t S_UART_IT, FunctionalState NewState)
mbed_official 620:034e698bc035 271 {
mbed_official 620:034e698bc035 272 assert_param(IS_S_UART_IT_FLAG(S_UART_IT));
mbed_official 620:034e698bc035 273
mbed_official 620:034e698bc035 274 if ( NewState != DISABLE )
mbed_official 620:034e698bc035 275 {
mbed_official 620:034e698bc035 276 UART2->CTRL |= S_UART_IT;
mbed_official 620:034e698bc035 277 }
mbed_official 620:034e698bc035 278 else
mbed_official 620:034e698bc035 279 {
mbed_official 620:034e698bc035 280 UART2->CTRL &= ~(S_UART_IT);
mbed_official 620:034e698bc035 281 }
mbed_official 620:034e698bc035 282 }
mbed_official 620:034e698bc035 283
mbed_official 620:034e698bc035 284 ITStatus S_UART_GetITStatus(uint16_t S_UART_IT)
mbed_official 620:034e698bc035 285 {
mbed_official 620:034e698bc035 286 ITStatus bitstatus = RESET;
mbed_official 620:034e698bc035 287
mbed_official 620:034e698bc035 288 assert_param(IS_S_UART_IT_FLAG(S_UART_IT));
mbed_official 620:034e698bc035 289
mbed_official 620:034e698bc035 290 if ((UART2->INT.STATUS & (S_UART_IT >> 2)) != (uint16_t) RESET)
mbed_official 620:034e698bc035 291 {
mbed_official 620:034e698bc035 292 bitstatus = SET;
mbed_official 620:034e698bc035 293 }
mbed_official 620:034e698bc035 294 else
mbed_official 620:034e698bc035 295 {
mbed_official 620:034e698bc035 296 bitstatus = RESET;
mbed_official 620:034e698bc035 297 }
mbed_official 620:034e698bc035 298
mbed_official 620:034e698bc035 299 return bitstatus;
mbed_official 620:034e698bc035 300 }
mbed_official 620:034e698bc035 301
mbed_official 620:034e698bc035 302 void S_UART_ClearITPendingBit(uint16_t S_UART_IT)
mbed_official 620:034e698bc035 303 {
mbed_official 620:034e698bc035 304 assert_param(IS_S_UART_IT_FLAG(S_UART_IT));
mbed_official 620:034e698bc035 305
mbed_official 620:034e698bc035 306 UART2->INT.CLEAR |= (S_UART_IT >> 2);
mbed_official 620:034e698bc035 307 }
mbed_official 620:034e698bc035 308
mbed_official 620:034e698bc035 309
mbed_official 620:034e698bc035 310 /**************************************************/
mbed_official 620:034e698bc035 311 // It will be moved to application board's driver */
mbed_official 620:034e698bc035 312 /**************************************************/
mbed_official 620:034e698bc035 313 uint8_t UartPutc(UART_TypeDef* UARTx, uint8_t ch)
mbed_official 620:034e698bc035 314 {
mbed_official 620:034e698bc035 315 UART_SendData(UARTx,ch);
mbed_official 620:034e698bc035 316
mbed_official 620:034e698bc035 317 while(UARTx->FR & UART_FR_BUSY);
mbed_official 620:034e698bc035 318
mbed_official 620:034e698bc035 319 return (ch);
mbed_official 620:034e698bc035 320 }
mbed_official 620:034e698bc035 321
mbed_official 620:034e698bc035 322 void UartPuts(UART_TypeDef* UARTx, uint8_t *str)
mbed_official 620:034e698bc035 323 {
mbed_official 620:034e698bc035 324 uint8_t ch;
mbed_official 620:034e698bc035 325
mbed_official 620:034e698bc035 326 do{
mbed_official 620:034e698bc035 327 ch = *str;
mbed_official 620:034e698bc035 328 if(ch != (uint8_t)0x0)
mbed_official 620:034e698bc035 329 {
mbed_official 620:034e698bc035 330 UartPutc(UARTx, ch);
mbed_official 620:034e698bc035 331 }
mbed_official 620:034e698bc035 332 *str++;
mbed_official 620:034e698bc035 333 }while(ch != 0);
mbed_official 620:034e698bc035 334 }
mbed_official 620:034e698bc035 335
mbed_official 620:034e698bc035 336 uint8_t UartGetc(UART_TypeDef* UARTx)
mbed_official 620:034e698bc035 337 {
mbed_official 620:034e698bc035 338 while(UARTx->FR & UART_FR_RXFE);
mbed_official 620:034e698bc035 339
mbed_official 620:034e698bc035 340 return (UARTx->DR & 0xFF);
mbed_official 620:034e698bc035 341 }
mbed_official 620:034e698bc035 342
mbed_official 620:034e698bc035 343
mbed_official 620:034e698bc035 344 uint8_t S_UartPutc(uint8_t ch)
mbed_official 620:034e698bc035 345 {
mbed_official 620:034e698bc035 346 S_UART_SendData(ch);
mbed_official 620:034e698bc035 347
mbed_official 620:034e698bc035 348 return (ch);
mbed_official 620:034e698bc035 349 }
mbed_official 620:034e698bc035 350
mbed_official 620:034e698bc035 351 void S_UartPuts(uint8_t *str)
mbed_official 620:034e698bc035 352 {
mbed_official 620:034e698bc035 353 uint8_t ch;
mbed_official 620:034e698bc035 354
mbed_official 620:034e698bc035 355 do{
mbed_official 620:034e698bc035 356 ch = *str;
mbed_official 620:034e698bc035 357 if(ch != (uint8_t)0x0)
mbed_official 620:034e698bc035 358 {
mbed_official 620:034e698bc035 359 S_UART_SendData(ch);
mbed_official 620:034e698bc035 360 }
mbed_official 620:034e698bc035 361 *str++;
mbed_official 620:034e698bc035 362 }while(ch != 0);
mbed_official 620:034e698bc035 363 }
mbed_official 620:034e698bc035 364
mbed_official 620:034e698bc035 365 uint8_t S_UartGetc()
mbed_official 620:034e698bc035 366 {
mbed_official 620:034e698bc035 367 while( (UART2->STATE & S_UART_STATE_RX_BUF_FULL) == 0 );
mbed_official 620:034e698bc035 368 return (uint8_t)S_UART_ReceiveData();
mbed_official 620:034e698bc035 369 }
mbed_official 620:034e698bc035 370
mbed_official 620:034e698bc035 371