STM8L151 제품에 대한 프로그램 관련 부분을 정리 합니다.
소스는 STM에서 제공되는 예제를 이용 합니다.
압축 파일이 티스토리에 올리기에는 크기 때문에 2개를 나누었습니다.
2개를 다운 받으신 후 압축을 푸세요
여기서 라이브러를 가져와서 사용 합니다.
프로젝트를 만드는 부분은 다른곳을 찾아 보시기 바라면서.
ST에서 제공되는 컴파일러를 사용 하였습니다.
핀은 다음과 같이 설정 합니다. I2C는 설명하지 않을겁니다.
제목처럼 USART1, TIMER1, TIMER2 를 설명 합니다.
외부 인터럽트에 의한 카운터가 아닌 캡쳐를 이용 하였습니다.
소스는 다음과 같습니다.
Clock Setting
{
// 클럭 셋팅
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE); /* Timer1 clock Enable */
CLK_PeripheralClockConfig(CLK_Peripheral_TIM4, ENABLE); /* Timer4 clock Enable */
CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE); /* Uart clock Enable */
CLK_PeripheralClockConfig(CLK_Peripheral_I2C1, ENABLE); /* I2C clock Enable */
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
TImer1 Setting
{
TIM1_TimeBaseInit(TIM1_PRESCALER, TIM1_CounterMode_Up, TIM1_PERIOD, TIM1_REPTETION_COUNTER);
TIM1_ITConfig(TIM1_IT_Update, ENABLE);
TIM1_Cmd(ENABLE);
Timer2 Setting
{
TIM2_TimeBaseInit(TIM2_Prescaler_1, TIM2_CounterMode_Up, 125);
TIM2_UpdateRequestConfig(TIM2_UpdateSource_Global);
// Timer2 Start Enable
TIM2_ITConfig(TIM2_IT_Update, ENABLE);
TIM2_Cmd(ENABLE);
}
USART1 Setting
{
USART_DeInit(USART1);
USART_Init(USART1, (uint32_t)115200, USART_WordLength_8b, USART_StopBits_1,
USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));
/* Enable general interrupts TX */
GPIO_ExternalPullUpConfig(GPIOC, GPIO_Pin_3, ENABLE);
/* Configure USART Rx as alternate function push-pull (software pull up)*/
GPIO_ExternalPullUpConfig(GPIOC, GPIO_Pin_2, ENABLE);
/* Enable the USART Receive interrupt: this interrupt is generated when the USART
receive data register is not empty */
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
/* Enable the USART Transmit complete interrupt: this interrupt is generated when the USART
transmit Shift Register is empty */
USART_ClearITPendingBit(USART1,USART_IT_TXE);
USART_ITConfig(USART1, USART_IT_TC, ENABLE);
/* Enable USART */
USART_Cmd(USART1, ENABLE);
GPIOx Setting
{
GPIO_DeInit(GPIOA);
GPIO_DeInit(GPIOB);
GPIO_DeInit(GPIOC);
GPIO_DeInit(GPIOD);
GPIO_DeInit(GPIOE);
// x 는 ABCDE , xx 는 1~7까지 포트
GPIO_Init(GPIOx, GPIO_Pin_xx, GPIO_Mode_Out_PP_Low_Fast);
처리 하고자 하는 부분을 넣어 주세요
'WORK > HARDWARE' 카테고리의 다른 글
STM8L STM32F EVB (0) | 2017.04.21 |
---|---|
블루투스 자료 모음 (0) | 2017.04.20 |
CLK 구형파 만들기 (0) | 2017.03.29 |
pspice Orcad 구형파 만들기 (0) | 2017.03.28 |
orcad VSIN 설정 (0) | 2017.03.24 |
댓글