diff --git a/dynamixel_base/include/dynamixel.h b/dynamixel_base/include/dynamixel.h
index 9623b1d9f59d05a25ab4c8c7a72ea682b18bb17a..29b35c00bcd38f3de34e17a61442c7e40297be3e 100755
--- a/dynamixel_base/include/dynamixel.h
+++ b/dynamixel_base/include/dynamixel.h
@@ -228,7 +228,7 @@ inline unsigned char dyn_get_read_status_id(unsigned char *packet)
 }
 
 #ifdef __cplusplus
-  }
+}
 #endif
 
 #endif
diff --git a/dynamixel_base/include/dynamixel2.h b/dynamixel_base/include/dynamixel2.h
index 2b69fd23337fe9c0719fa52c0723e1e59956c25f..f4303061ff52d4fde5b34c664ebad18f47cadd41 100644
--- a/dynamixel_base/include/dynamixel2.h
+++ b/dynamixel_base/include/dynamixel2.h
@@ -251,7 +251,7 @@ inline unsigned char dyn2_get_read_status_id(unsigned char *packet)
 }
 
 #ifdef __cplusplus
-  }
+}
 #endif
 
 #endif
diff --git a/dynamixel_base/include/dynamixel_master.h b/dynamixel_base/include/dynamixel_master.h
index 2a726aa71c8abef9aed0436eedec624cbf3bbe9d..f1fdf2e6fed4c8daa094bb9f2324ba1191768ff4 100644
--- a/dynamixel_base/include/dynamixel_master.h
+++ b/dynamixel_base/include/dynamixel_master.h
@@ -202,7 +202,7 @@ unsigned char dyn_master_bulk_write(TDynamixelMaster *master,unsigned char num,u
 unsigned char dyn_master_relay(TDynamixelMaster *master,unsigned char *inst_pkt,unsigned char *status_pkt);
 
 #ifdef __cplusplus
-  }
+}
 #endif
 
 #endif
diff --git a/dynamixel_base/include/dynamixel_slave.h b/dynamixel_base/include/dynamixel_slave.h
index 39a1a553a49390a94effa754d7f529cf85314fcb..067ad7ee7fd164a9c212ccf8502eae5e534ccd31 100644
--- a/dynamixel_base/include/dynamixel_slave.h
+++ b/dynamixel_base/include/dynamixel_slave.h
@@ -169,7 +169,7 @@ inline void dyn_slave_stop(TDynamixelSlave *slave)
 }
 
 #ifdef __cplusplus
-  }
+}
 #endif
 
 #endif
diff --git a/dynamixel_base/include/dynamixel_slave_device.h b/dynamixel_base/include/dynamixel_slave_device.h
index f1f0deb334ab6242607a732a2d7b70130bf9d2be..34b28e1daf6fef7d317a3b7de74e66767baa7920 100644
--- a/dynamixel_base/include/dynamixel_slave_device.h
+++ b/dynamixel_base/include/dynamixel_slave_device.h
@@ -208,7 +208,7 @@ inline TMemory *dyn_slave_device_get_memory(TDynamixelSlaveDevice *device)
 }
 
 #ifdef __cplusplus
-  }
+}
 #endif
 
 #endif
diff --git a/f1/usart/include/usart3.h b/f1/usart/include/usart3.h
index 6766e640bb95df2d6712741c632dfa2b60671e92..5d60161a40b521608153bbeb54b16e4e31994737 100644
--- a/f1/usart/include/usart3.h
+++ b/f1/usart/include/usart3.h
@@ -1,10 +1,15 @@
 #ifndef USART3_F1_H
 #define USART3_F1_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include "stm32f1xx_hal.h"
 #include "usart_common.h"
 #include "comm.h"
 
+
 /* public functions */
 void usart3_init(TComm *comm_dev,USART_InitTypeDef *conf,TUSART_IRQ_Priorities *priorities);
 void usart3_config(TComm *comm_dev,USART_InitTypeDef *conf);
@@ -15,9 +20,16 @@ unsigned char usart3_send_irq(unsigned char first_byte);
 unsigned char usart3_enable_tx_irq(void);
 unsigned char usart3_receive_irq(void);
 unsigned char usart3_cancel_receive_irq(void);
+void USART_IRQHandler(void);
 /* DMA functions */
 unsigned char usart3_send_dma(unsigned char *data,unsigned short int length);
 unsigned char usart3_receive_dma(unsigned char *data,unsigned short int length);
 unsigned char usart3_cancel_receive_dma(void);
+void USART_DMA_TX_IRQHandler(void);
+void USART_DMA_RX_IRQHandler(void);
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif