Я бы порекомендовал не изобретать велосипед, а использовать готовый бесплатный компонент bcomport или mscomm. Сам не раз работал с ними и остался доволен. Тем более, что bcomport позволяет как на низком так и на высоком уровне работать с COM-портом в асинхронном режиме.
К bcomport также прилагается документация с примерами на русском языке. Скачать bcomport можно
отсюда.