MODSERIAL with support for more devices
Dependents: 1D-Pong BMT-K9_encoder BMT-K9-Regelaar programma_filter ... more
Check the cookbook page for more information: https://mbed.org/cookbook/MODSERIAL
Did you add a device? Please send a pull request so we can keep everything in one library instead of many copies. In that case also send a PM, since currently mbed does not inform of new pull requests. I will then also add you to the developers of this library so you can do other changes directly.
Diff: Device/MODSERIAL_PAC_F401RB.h
- Revision:
- 41:d8422efe4761
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Device/MODSERIAL_PAC_F401RB.h Tue Nov 17 12:11:44 2015 -0300 @@ -0,0 +1,20 @@ +#if defined(TARGET_PAC_F401RB) + +#define MODSERIAL_IRQ_REG ((USART_TypeDef*)_base)->CR1 +#define DISABLE_TX_IRQ MODSERIAL_IRQ_REG &= ~USART_CR1_TXEIE +#define DISABLE_RX_IRQ MODSERIAL_IRQ_REG &= ~USART_CR1_RXNEIE +#define ENABLE_TX_IRQ MODSERIAL_IRQ_REG |= USART_CR1_TXEIE +#define ENABLE_RX_IRQ MODSERIAL_IRQ_REG |= USART_CR1_RXNEIE + +#define MODSERIAL_READ_REG ((USART_TypeDef*)_base)->DR +#define MODSERIAL_WRITE_REG ((USART_TypeDef*)_base)->DR +#define MODSERIAL_READABLE ((((USART_TypeDef*)_base)->SR & USART_SR_RXNE) != 0) +#define MODSERIAL_WRITABLE ((((USART_TypeDef*)_base)->SR & USART_SR_TXE) != 0) + +#define RESET_TX_FIFO while(0 == 1) +#define RESET_RX_FIFO while(MODSERIAL_READABLE) char dummy = MODSERIAL_READ_REG + +#define RX_IRQ_ENABLED ((MODSERIAL_IRQ_REG & USART_CR1_RXNEIE) != 0) +#define TX_IRQ_ENABLED ((MODSERIAL_IRQ_REG & USART_CR1_TXEIE) != 0) + +#endif