刚接触ST,以前没有做过任何的嵌入式工作,这是我的第一个接触到的软件平台。 目前遇到了关于串口的问题,我用的是UART1,在系统初始化的时候,cpu时钟已经打开了外设TIM1,UART1的门控寄存器。然后,我也在仿真的时候设置了相应的选项字节,GPIO也不存在问题。然后开始串口的程序,先介绍我初始化的寄存器吧:
UART1->CR1 = UART1_CR1_RESET_VALUE;
UART1->CR3 = UART1_CR3_RESET_VALUE;
UART1->BRR2 = 0x03;
UART1->BRR1 = 0x68; //波特率是4800
UART1->CR2 = ((u8)(UART2_CR2_TCIEN | UART2_CR2_RIEN | UART2_CR2_TEN | UART2_CR2_REN));
然后我开始写 发送初始化程序, 发送函数, 接收初始化函数, 接收函数; 发送函数和接收函数都是外部函数,在stm8_it.c中相应的发送,接收中断中调用。但是,问题出来了!我竟然进不了接收中断,各位能不能告诉我是怎么回事,我知道是我的底层有问题,但是我又找不出真正的原因。是不是CR2寄存器开的发送接收使能和中断太早了,CR2的设置这里我不知道该怎么办了,希望大家路过的,给我指点一下,谢啦! |