mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Mon Sep 28 13:00:10 2015 +0100
Revision:
631:ff681937ffd8
Parent:
619:034e698bc035
Synchronized with git revision 1be56c8134a3ed6004f149a84f658de45dda6a5c

Full URL: https://github.com/mbedmicro/mbed/commit/1be56c8134a3ed6004f149a84f658de45dda6a5c/

Who changed what in which revision?

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