Доброго времени суток! Пытаюсь запустить USART на STM8L151, код пишу в IAR.
1) Ремап сделал на А2,А3.
2) Выход настроил.
3) USART1 включил.
3) Делитель установил.
4) Передачу разрешил.
Но на выходе ничего нет.
Зисис мой код:
Код:
#include "iostm8l151f3.h"
void clock_init(){
CLK_CKDIVR = 1;
CLK_ICKCR |= (1<<0);
while(!(CLK_ICKCR&(1<<1)));
}
void mcu_usart_init(unsigned int divider){
SYSCFG_RMPCR1 |= (1<<4); //Remap to PA2, PA3
PA_DDR_bit.DDR2 = 1; // Output
PA_CR1_bit.C12 = 1; // Push-pull
CLK_PCKENR1_bit.PCKEN10 = 1; //USART1 On
(void) USART1_SR;
(void) USART1_DR;
USART1_BRR2 = (unsigned char) (((divider >> 8) & 0xF0) | (divider & 0x0F));
USART1_BRR1 = (unsigned char) (divider >> 4);
USART1_CR2_bit.REN=1;
USART1_CR2_bit.TEN=1;
}
int main( void ){
clock_init();
mcu_usart_init(208); //Divider for 8MHz to 34800
PC_DDR_bit.DDR4 = 1; // Output
PC_CR1_bit.C14 = 1; // Push-pull
PC_CR2_bit.C24 = 0; // 2MHz output speed
while(1){
while(!(USART1_SR_bit.TXE));
USART1_DR = 0xAA;
PC_ODR ^= (1<<4);
for(unsigned long i=0; i<200000; i++);
}
}
Где я неправ или что ещё нужно сделать?