STM8903K3串口通信的问题
刚接触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的设置这里我不知道该怎么办了,希望大家路过的,给我指点一下,谢啦!
RE:STM8903K3串口通信的问题
还需要开启接收中断和中断向量级别。另外还要在指定的向量程序中增加串口接收处理的代码。
建议你参考一下例程,然后自己动手练习一下。理论和实际相结合,这样才能更快的上手。如果还有问题,请在论坛留言。
回复:STM8903K3串口通信的问题
回复第 2 楼 安 于2010-10-26 14:20:04发表:还需要开启接收中断和中断向量级别。
另外还要在指定的向量程序中增加串口接收处理的代码。
建议你参考一下例程,然后自己动手练习一下。理论和实际相结合,这样才能更快的上手。如果还有问题,请在论坛留言。
需要开启中断向量级别么?为什么呢?
RE:STM8903K3串口通信的问题
因为中断向量级别来判断哪个中断是优先的,也叫优先级。当几个中断同时发生时,将按照最高优先级到最低优先级的顺序执行。有的MCU最低优先级是关闭中断的,所以需要你配置中断优先级。
页:
[1]