4141 */
4242
4343static ring_buffer usart1_rb ;
44+ static ring_buffer usart1_wb ;
4445static usart_dev usart1 = {
4546 .regs = USART1_BASE ,
4647 .rb = & usart1_rb ,
48+ .wb = & usart1_wb ,
4749 .max_baud = 4500000UL ,
4850 .clk_id = RCC_USART1 ,
4951 .irq_num = NVIC_USART1 ,
@@ -52,9 +54,11 @@ static usart_dev usart1 = {
5254usart_dev * USART1 = & usart1 ;
5355
5456static ring_buffer usart2_rb ;
57+ static ring_buffer usart2_wb ;
5558static usart_dev usart2 = {
5659 .regs = USART2_BASE ,
5760 .rb = & usart2_rb ,
61+ .wb = & usart2_wb ,
5862 .max_baud = 2250000UL ,
5963 .clk_id = RCC_USART2 ,
6064 .irq_num = NVIC_USART2 ,
@@ -63,9 +67,11 @@ static usart_dev usart2 = {
6367usart_dev * USART2 = & usart2 ;
6468
6569static ring_buffer usart3_rb ;
70+ static ring_buffer usart3_wb ;
6671static usart_dev usart3 = {
6772 .regs = USART3_BASE ,
6873 .rb = & usart3_rb ,
74+ .wb = & usart3_wb ,
6975 .max_baud = 2250000UL ,
7076 .clk_id = RCC_USART3 ,
7177 .irq_num = NVIC_USART3 ,
@@ -75,9 +81,11 @@ usart_dev *USART3 = &usart3;
7581
7682#if defined(STM32_HIGH_DENSITY ) || defined(STM32_XL_DENSITY )
7783static ring_buffer uart4_rb ;
84+ static ring_buffer uart4_wb ;
7885static usart_dev uart4 = {
7986 .regs = UART4_BASE ,
8087 .rb = & uart4_rb ,
88+ .wb = & uart4_wb ,
8189 .max_baud = 2250000UL ,
8290 .clk_id = RCC_UART4 ,
8391 .irq_num = NVIC_UART4 ,
@@ -86,9 +94,11 @@ static usart_dev uart4 = {
8694usart_dev * UART4 = & uart4 ;
8795
8896static ring_buffer uart5_rb ;
97+ static ring_buffer uart5_wb ;
8998static usart_dev uart5 = {
9099 .regs = UART5_BASE ,
91100 .rb = & uart5_rb ,
101+ .wb = & uart5_wb ,
92102 .max_baud = 2250000UL ,
93103 .clk_id = RCC_UART5 ,
94104 .irq_num = NVIC_UART5 ,
@@ -191,23 +201,23 @@ void usart_foreach(void (*fn)(usart_dev*)) {
191201 */
192202
193203void __irq_usart1 (void ) {
194- usart_irq (& usart1_rb , USART1_BASE );
204+ usart_irq (& usart1_rb , & usart1_wb , USART1_BASE );
195205}
196206
197207void __irq_usart2 (void ) {
198- usart_irq (& usart2_rb , USART2_BASE );
208+ usart_irq (& usart2_rb , & usart2_wb , USART2_BASE );
199209}
200210
201211void __irq_usart3 (void ) {
202- usart_irq (& usart3_rb , USART3_BASE );
212+ usart_irq (& usart3_rb , & usart3_wb , USART3_BASE );
203213}
204214
205215#ifdef STM32_HIGH_DENSITY
206216void __irq_uart4 (void ) {
207- usart_irq (& uart4_rb , UART4_BASE );
217+ usart_irq (& uart4_rb , & uart4_wb , UART4_BASE );
208218}
209219
210220void __irq_uart5 (void ) {
211- usart_irq (& uart5_rb , UART5_BASE );
221+ usart_irq (& uart5_rb , & uart5_wb , UART5_BASE );
212222}
213223#endif
0 commit comments