lqh-414236 发表于 2015-2-4 11:37:28

stm8f003内建hsi不准确,不知道有没有人用内建的HSI做串口时钟源,反正我用了是不行了的!

lqh-414236 发表于 2015-2-5 13:57:56

这个芯片奇了怪了!自己的RX和TX接在一起单步调试,受到的数据完全没没有问题,可外接确是乱码的,也不能说是乱码,是一次会发两个码,比如MCU 的TX发送AA 给MCU的RX和 PC端,MCU中断调试没有问题,RX接收有问题!别说波特率不对,我用的波特率是对的,代码如下:
void myCLK_Init(void){
        CLK->ECKR=0x00; // 禁用外部时钟
        CLK->ICKR=0x01; //使能内部时钟
        CLK->CMSR=0xe1; // HSI selected as master clock source

        CLK->SWR= 0xe1; //HSI selected as master clock source
        CLK->CKDIVR=0x18;//Bits 4:3 11: fHSI= fHSI RC output/8   Bits 2:0 000: fCPU=fMASTER
        CLK->PCKENR1 = CLK->PCKENR1|0xc0;// UART1 CLK
}

//8bit data, 1 stiopbit, 无优先级,无流控,无DTR,无DTS
void myUART1_Init(void)
{
    UART1->CR2=0x00;//使发送禁用TEN=0;
    UART1->CR1=0x00;//设置M字长,8位数据位
    UART1->CR3=0x00;//1位停止位

    UART1->BRR2=0x00;//000d: 9600(fcp u=fmaster=2MHz) 必须先写BR2
    UART1->BRR1=0x0d;//20000 /96 =0x000d

    UART1->CR2=0x2C; //
   
}
void GInterruptSW(FunctionalState state){
        if(state == ENABLE){
                _asm("RIM");
        }else{
                _asm("SIM");
        }
}

深深的怀疑内建晶振不能用于uart!!!

foxglove 发表于 2015-2-5 16:38:02

stm8f003内建hsi

拼命三郎V5 发表于 2015-2-6 12:46:27

钟@柳州 发表于 2015-2-6 16:08:12

我就用HSI发送接收都没有问题

1407W 发表于 2015-2-6 18:03:02

UART1_IrDAConfig(UART1_IRDAMODE_NORMAL);这个解释一下 貌似是红外线串口配置吧
GPIO_DeInit(GPIOA);
      GPIO_DeInit(GPIOC);这两个干嘛的 不知道
还有个问题 接收中断呢好好看看自己的程序 不要怀疑芯片

lqh-414236 发表于 2016-10-9 10:09:06

擦,很早就解决了。原来是硬件设计者忘记放了一个RS232了!!!!!电平没转换!!!

lulugl 发表于 2016-10-9 11:01:39

楼主英明呀

zbber 发表于 2016-10-9 11:18:31

stm8f003内建hsi不准确

zcl201207 发表于 2016-10-9 20:04:08

HSI不精确也不至于乱码成那样,硬件出问题的可能性大:):):)
页: 1 [2] 3
查看完整版本: 为什么的STM8S003F3P6的uart1发送数据是乱码的?你们遇到过吗?