Работаю с китом STM8L. Задача завести USART на STM8L151.
Нашел большое количество примеров, но тем не менее USART молчит. Выставил тактирование от внутреннего генератора, поставил порт на вывод. Смотрел по осцилографу, слушал COM порт - тишина.
Пытаясь бесконечно подать на выход USART одну и ту же величину использовал такой код:
Код: Выделить всё
#define STM8L15X_MD
#include "iostm8l152c6.h"
#include "stm8l15x.h"
void main(){
PC_DDR_bit.DDR3=1; //PС3 - на вывод.
PD_CR1_bit.C13 = 1; // Выход типа Push-pull
PD_CR2_bit.C23 = 1;
CLK->ICKCR |= CLK_ICKCR_HSION;
CLK_ICKCR_HSION=1; // Разрешаем работу генератора с внутренним кварцем
CLK->SWCR |= CLK_SWCR_SWEN; // Разрешаем переключение генераторов;
CLK->SWR = 0x01; //Выбираем clock от кварцевого генератора (HSI)
CLK->CKDIVR = CLK_CKDIVR; //Делители частоты на 1 - частота ядра максимальная.
while(CLK_SCSR!=0x01); //Ждем стабилизации частоты
CLK->PCKENR1 |= CLK_PCKENR1_USART1;
USART1->CR1 = 0;
USART1->CR3 = 0;
USART1->CR4 = 0;
USART1->CR5 = 0;
USART1->CR2 = USART_CR2_TEN;
USART1->BRR2 = 0x03;
USART1->BRR1 = 0x68;
int i=1;
while (i==1) {
USART1->DR = 0xAB;
while(!(USART1->SR & USART_SR_TC));
}
}


