aboutsummaryrefslogtreecommitdiffstats
path: root/src/wiring/comm/Serial.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wiring/comm/Serial.cpp')
-rw-r--r--src/wiring/comm/Serial.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/wiring/comm/Serial.cpp b/src/wiring/comm/Serial.cpp
new file mode 100644
index 0000000..3c43436
--- /dev/null
+++ b/src/wiring/comm/Serial.cpp
@@ -0,0 +1,67 @@
+//#include "stm32f10x_usart.h"
+#include "stm32f10x_gpio.h"
+#include "stm32f10x_rcc.h"
+#include "gpio.h"
+#include "Serial.h"
+#include "wiring.h"
+
+int SendChar (int ch) {
+ /* Write character to Serial Port */
+// USART_SendData(USART2, (unsigned char) ch);
+// while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET)
+// ;
+//
+// // while (!(USART2->SR & USART_FLAG_TXE));
+// return (ch);
+}
+
+void uart_send(const char* str) {
+ while (*str != '\0') {
+ SendChar(*str);
+ str++;
+ }
+}
+
+
+Serial::Serial() {
+}
+
+void Serial::write(uint8_t c) {
+ SendChar(c);
+}
+
+void Serial::begin(uint32_t baud) {
+ // USART_InitTypeDef USART_InitStructure;
+
+ /* Turn on the clock */
+ RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
+
+#if 0
+ /* Configure USART2 Tx as alternate function push-pull */
+ GPIO_InitTypeDef GPIO_InitStructure;
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
+ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
+ GPIO_Init(GPIOA, &GPIO_InitStructure);
+
+ /* Configure USART2 Rx as input floating */
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
+ GPIO_Init(GPIOA, &GPIO_InitStructure);
+#endif
+
+ pinMode(1, GPIO_MODE_AF_OUTPUT_PP);
+ pinMode(0, GPIO_MODE_INPUT_FLOATING);
+
+ /* Enable USART2 */
+// USART_InitStructure.USART_BaudRate = baud;
+// USART_InitStructure.USART_WordLength = USART_WordLength_8b;
+// USART_InitStructure.USART_StopBits = USART_StopBits_1;
+// USART_InitStructure.USART_Parity = USART_Parity_No ;
+// USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
+// USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
+// USART_Init(USART2, &USART_InitStructure);
+// USART_Cmd(USART2, ENABLE);
+}
+
+Serial Serial1;