你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8903K3串口通信的问题

[复制链接]
PP11LL 提问时间:2010-10-26 19:38 /
        刚接触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的设置这里我不知道该怎么办了,希望大家路过的,给我指点一下,谢啦!
 
 
收藏 评论3 发布时间:2010-10-26 19:38

举报

3个回答
废鱼 回答时间:2010-10-26 22:20:04

RE:STM8903K3串口通信的问题

还需要开启接收中断和中断向量级别。
另外还要在指定的向量程序中增加串口接收处理的代码。
建议你参考一下例程,然后自己动手练习一下。理论和实际相结合,这样才能更快的上手。如果还有问题,请在论坛留言。
PP11LL 回答时间:2010-10-27 08:11:30

回复:STM8903K3串口通信的问题

回复第 2 楼 安 于2010-10-26 14:20:04发表:
还需要开启接收中断和中断向量级别。
另外还要在指定的向量程序中增加串口接收处理的代码。
建议你参考一下例程,然后自己动手练习一下。理论和实际相结合,这样才能更快的上手。如果还有问题,请在论坛留言。 

需要开启中断向量级别么?为什么呢?
废鱼 回答时间:2010-10-27 08:24:03

RE:STM8903K3串口通信的问题

因为中断向量级别来判断哪个中断是优先的,也叫优先级。当几个中断同时发生时,将按照最高优先级到最低优先级的顺序执行。
有的MCU最低优先级是关闭中断的,所以需要你配置中断优先级。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版