Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

STM8L0151+USART не работает

Вт апр 03, 2018 20:15:14

Доброго времени суток! Пытаюсь запустить 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++);
 
  }
}



Где я неправ или что ещё нужно сделать?

Re: STM8L0151+USART не работает

Сб дек 29, 2018 00:31:03

Доброго времени суток! Пытаюсь запустить USART на STM8L151, код пишу в IAR.

Зисис мой код:

Код:
  CLK_PCKENR1_bit.PCKEN10 = 1; //USART1 On


Где я неправ или что ещё нужно сделать?


По моему тут должно быть: CLK_PCKENR1_bit.PCKEN15 = 1
Ответить