Доброго времени суток! Пытаюсь запустить USART на STM8L151, код пишу в IAR.
1) Ремап сделал на А2,А3.
2) Выход настроил.
3) USART1 включил.
3) Делитель установил.
4) Передачу разрешил.
Но на выходе ничего нет.
Зисис мой код:
Где я неправ или что ещё нужно сделать?
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++);
}
}
