Rev 5 | Rev 7 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 5 | Rev 6 | ||
|---|---|---|---|
| Line 137... | Line 137... | ||
| 137 | __disable_irq (); |
137 | __disable_irq (); |
| 138 | uint32_t rxStatus; // status from USART receiver |
138 | uint32_t rxStatus; // status from USART receiver |
| 139 | 139 | ||
| 140 | rxStatus = instance->Handle->Instance->SR;// read the status bits - this resets all the hardware signalling flags |
140 | rxStatus = instance->Handle->Instance->SR;// read the status bits - this resets all the hardware signalling flags |
| 141 | 141 | ||
| - | 142 | if ((rxStatus & USART_SR_LBD)) |
|
| - | 143 | __HAL_UART_CLEAR_FLAG(instance->Handle,USART_SR_LBD); |
|
| - | 144 | ||
| 142 | if ((rxStatus & USART_SR_RXNE)!= RESET) |
145 | if ((rxStatus & USART_SR_RXNE)!= RESET) |
| 143 | { |
146 | { |
| 144 | // no error has occurred... |
147 | // no error has occurred... |
| 145 | uint8_t rxChar = (uint8_t) (instance->Handle->Instance->DR & 0xff);// read the bottom 8-bits only |
148 | uint8_t rxChar = (uint8_t) (instance->Handle->Instance->DR & 0xff);// read the bottom 8-bits only |
| 146 | 149 | ||
| Line 157... | Line 160... | ||
| 157 | instance->rx_usart_buffer_full = 1; /* buffer overrun */ |
160 | instance->rx_usart_buffer_full = 1; /* buffer overrun */ |
| 158 | } |
161 | } |
| 159 | } |
162 | } |
| 160 | } |
163 | } |
| 161 | /* check for transmitter interrupt : this code is used */ |
164 | /* check for transmitter interrupt : this code is used */ |
| 162 | if (instance->tx_usart_running && ((rxStatus & USART_SR_TXE) != RESET)) |
165 | if ((rxStatus & USART_SR_TXE) != RESET) |
| 163 | { |
166 | { |
| 164 | 167 | ||
| - | 168 | ||
| 165 | /* Only enable the transmitter when baud detect has completed or check expired. |
169 | /* Only enable the transmitter when baud detect has completed or check expired. |
| 166 | * and the software is ready for it to be enabled as programming mode is wanting |
170 | * and the software is ready for it to be enabled as programming mode is wanting |
| 167 | * to receive a response and that can get blocked if we're streaming a lot of debug messages*/ |
171 | * to receive a response and that can get blocked if we're streaming a lot of debug messages*/ |
| 168 | if (instance->tx_usart_in_Ptr != instance->tx_usart_out_Ptr) |
172 | if (instance->tx_usart_in_Ptr != instance->tx_usart_out_Ptr) |
| 169 | { |
173 | { |
| Line 175... | Line 179... | ||
| 175 | if (instance->tx_usart_out_Ptr >= TX_USART_BUFF_SIZ) |
179 | if (instance->tx_usart_out_Ptr >= TX_USART_BUFF_SIZ) |
| 176 | { |
180 | { |
| 177 | instance->tx_usart_out_Ptr = 0; |
181 | instance->tx_usart_out_Ptr = 0; |
| 178 | } |
182 | } |
| 179 | } |
183 | } |
| 180 | else |
184 | if (instance->tx_usart_count == 0) |
| 181 | { |
185 | { |
| 182 | __HAL_UART_DISABLE_IT (instance->Handle, UART_IT_TXE); |
186 | __HAL_UART_DISABLE_IT (instance->Handle, UART_IT_TXE); |
| 183 | instance->tx_usart_running = 0; |
187 | instance->tx_usart_running = 0; |
| 184 | } |
188 | } |
| 185 | } |
189 | } |