Tutorial Microcontroller MCS-51 ATMEL ISP
 

 

Super MCS51 Trainer

Standart MCS51 Trainer

Standart AVR Trainer

Programmer USBASP

Standart ARM Trainer

  5. Experiment Serial communication RS232

Fig. 1. Port Serial Interface

Fig.2. CMIS Library for PORT Serial

 

#include <stm32f4xx.h>		 
#include "math.h"
#include "stm32f4xx_usart.h"
#include "stm32f4xx_gpio.h"
#include "misc.h"
#include "stm32f4xx_rcc.h"
#include "HD44780.h"
#include "stdlib.h"
#include "stdio.h"

void USART3_PutChar(char c);
void init_USART3(uint32_t baudrate)
{
           GPIO_InitTypeDef GPIO_InitStruct;
           USART_InitTypeDef USART_InitStruct; 
           NVIC_InitTypeDef NVIC_InitStructure;
           RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
           RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
           GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9; 
           GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; 
           GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; 
           GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; 
           GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
           GPIO_Init(GPIOD, &GPIO_InitStruct); 
           GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_USART3);
           GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_USART3);
           USART_InitStruct.USART_BaudRate = baudrate; 
           USART_InitStruct.USART_WordLength = USART_WordLength_8b;
           USART_InitStruct.USART_StopBits = USART_StopBits_1; 
           USART_InitStruct.USART_Parity = USART_Parity_No; 
           USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;            
           USART_InitStruct.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; 
           USART_Init(USART3, &USART_InitStruct);
           USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
           NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn; 
           NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
           NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; 
           NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 
           NVIC_Init(&NVIC_InitStructure); 
           USART_Cmd(USART3, ENABLE);
}
           
void USART_puts(USART_TypeDef* USARTx, volatile char *s)
{
while(*s)
{ while( !(USARTx->SR & 0x00000040) ); USART_SendData(USARTx, *s); *s++; } } //
int main(void)
{
           init_USART3(115200);
           USART_puts(USART3,"Percobaan");
           while (1)
           {
           }
}