aboutsummaryrefslogtreecommitdiffstats
path: root/src/wiring/comm
diff options
context:
space:
mode:
authoriperry <iperry@749a229e-a60e-11de-b98f-4500b42dc123>2009-12-17 02:37:07 +0000
committeriperry <iperry@749a229e-a60e-11de-b98f-4500b42dc123>2009-12-17 02:37:07 +0000
commit32e57dac2e61e79b029593eb4d34d727bcc10678 (patch)
tree98d7ff41993576bb150d13d5f63dc744f6812852 /src/wiring/comm
downloadlibrambutan-32e57dac2e61e79b029593eb4d34d727bcc10678.tar.gz
librambutan-32e57dac2e61e79b029593eb4d34d727bcc10678.zip
Initial commit of library code, moved from leaftest repo
git-svn-id: https://leaflabs.googlecode.com/svn/trunk/library@69 749a229e-a60e-11de-b98f-4500b42dc123
Diffstat (limited to 'src/wiring/comm')
-rw-r--r--src/wiring/comm/Serial.cpp67
-rw-r--r--src/wiring/comm/Serial.h20
2 files changed, 87 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;
diff --git a/src/wiring/comm/Serial.h b/src/wiring/comm/Serial.h
new file mode 100644
index 0000000..0e7a126
--- /dev/null
+++ b/src/wiring/comm/Serial.h
@@ -0,0 +1,20 @@
+#ifndef _SERIAL_H_
+#define _SERIAL_H_
+
+#include <inttypes.h>
+#include <Print.h>
+
+class Serial : public Print {
+ public:
+ Serial();
+ void begin(uint32_t);
+ uint8_t available(void);
+ int read(void);
+ void flush(void);
+ virtual void write(uint8_t);
+ using Print::write;
+};
+
+extern Serial Serial1;
+#endif
+