打印
[STM8]

stm8s串口只能发不能收?

[复制链接]
7294|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
问题:串口只能发数据,不能收数据。奇怪现象1:直接把2、3引脚对接,有收到的现象;接上串口线,在串口线另一端接2、3引脚,没反应。用串口调试,只能收不能发。
程序如下:

#include <stm8s208mb.h>
#include <system.h>
void UART3_sendchar(u8 DATA)
{
while((UART3_SR & 0x80)==0x00);
  UART3_DR=DATA;
}
main()
{
cbi(PD_DDR,6);cbi(PD_CR1,6);cbi(PD_CR2,6);
sbi(PD_DDR,5);cbi(PD_CR1,5);cbi(PD_CR2,5);
_asm("sim");

////////串口3 初始化//////////
UART3_CR1=0x00;
UART3_CR2=0x00;
UART3_CR3=0x00;
UART3_BRR2=0x00;
UART3_BRR1=0x0d;
UART3_CR2=0x2c;
_asm("rim");

while (1)
{
UART3_sendchar(0x08);
delay_ms(1000);

}
}
@far @interrupt void UART3_Recv (void)
{
u8 data;
data=UART3_DR;
UART3_sendchar(data);
return;
  
}

原理图部分:

QQ截图未命名.gif (20.23 KB )

QQ截图未命名.gif
沙发
malaoshi|  楼主 | 2012-9-13 15:19 | 只看该作者
这个问题困扰好几天了,先说声谢谢!

使用特权

评论回复
板凳
IJK| | 2012-9-13 16:23 | 只看该作者
直接把2、3引脚对接,有收到的现象,说明STM8S是工作的。
用串口调试,只能收不能发         谁不能发,STM8S还是PC?

用示波器来看,应该很容易发现问题。比如波特率不对。

使用特权

评论回复
地板
malaoshi|  楼主 | 2012-9-13 17:42 | 只看该作者
就是用串口调试时,电脑给stm8s发数据,stm8s没有反应。
奇怪的是直接把2、3引脚对接,有收到现象。如果用串口线一头接开发板,另一头2、3引脚对接,开发板就收不到了。

使用特权

评论回复
5
malaoshi|  楼主 | 2012-9-13 17:44 | 只看该作者
能不能帮我看下是不是程序的问题,程序都在上面,没有其它的设置,应该可以看出是不是波特率出没出问题吧

使用特权

评论回复
6
malaoshi|  楼主 | 2012-9-13 22:04 | 只看该作者
菜鸟,刚学,希望大家给个建议!

使用特权

评论回复
7
figo20042005| | 2012-9-13 23:16 | 只看该作者
测下看PC有发过来数据没。对接能接收,说明数据接收好着

使用特权

评论回复
8
malaoshi|  楼主 | 2012-9-14 12:37 | 只看该作者
我想说的是程序,我没初始化时钟,还有其它的,这样可以吧。谁能帮我看下程序是否正确,谢谢了!

使用特权

评论回复
9
liuxiaoyun1210| | 2012-9-14 13:50 | 只看该作者
用调用库来实现,先确定是硬件问题是软件问题。

使用特权

评论回复
10
malaoshi|  楼主 | 2012-9-14 13:55 | 只看该作者
我不会调用库函数,把库函数加进去有很多错误,你有没有相关的资料,谢谢9楼!我的邮箱!
aidehua5006@163.com

使用特权

评论回复
11
IJK| | 2012-9-14 15:53 | 只看该作者
就是用串口调试时,电脑给stm8s发数据,stm8s没有反应。
奇怪的是直接把2、3引脚对接,有收到现象。如果用串口线一头接开发板,另一头2、3引脚对接,开发板就收不到了。 ...
malaoshi 发表于 2012-9-13 17:42


stm8s给电脑发数据,电脑能收到吗?
看情况有点象波特率不对。

不管如何,用示波器看看就清楚了。

使用特权

评论回复
12
malaoshi|  楼主 | 2012-9-14 17:59 | 只看该作者
stm8跟电脑发电脑能收到,电脑给stm8发,电脑收不到(用的是串口调试助手)。
我们这里没有示波器。
你怎样理解:在开发板串口上直接对接2、3引脚,有有收到现象。如果用串口线一头接开发板,另一头2、3引脚对接,开发板就收不到了。

使用特权

评论回复
13
malaoshi|  楼主 | 2012-9-16 16:49 | 只看该作者
此贴已结,属硬件问题,谢谢楼上的每一个人!

使用特权

评论回复
评论
xilibubo1 2018-6-21 14:55 回复TA
什么问题,我也是不能收 
14
大米饭| | 2012-12-17 19:53 | 只看该作者
cbi(PD_DDR,6);cbi(PD_CR1,6);cbi(PD_CR2,6);
sbi(PD_DDR,5);cbi(PD_CR1,5);cbi(PD_CR2,5);
可以这样写?这样对位进行操作?
你用的IAR吧,我用的STVD应该不可以

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

0

粉丝