发新帖我要提问
12
返回列表
打印
[STM8]

串口的接收数据

[复制链接]
楼主: shaowei2072009
手机看帖
扫描二维码
随时随地手机跟帖
21
shaowei2072009|  楼主 | 2013-6-3 15:19 | 只看该作者 回帖奖励 |倒序浏览
huiguang_1 发表于 2013-6-3 15:10
AD_TDR这个寄存器是设置禁止施密特触发的,STM8的串口和采样口是复用的,采样口配置为禁止施密特触发了,可 ...

这是所有的程序了 ,我只是先验证串口,就是用串口接收数据然后加一再发送回去。其他的没做配置

使用特权

评论回复
22
shaowei2072009|  楼主 | 2013-6-3 15:26 | 只看该作者
huiguang_1 发表于 2013-6-3 15:10
AD_TDR这个寄存器是设置禁止施密特触发的,STM8的串口和采样口是复用的,采样口配置为禁止施密特触发了,可 ...

没用到采样数据,我把程序改为、
unsigned char i;
    u8 TxBuffer1[] = "STM8 Hello!";
    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8);
    UART2->BRR2 = 0x00; //9600bps @2M
    UART2->BRR1 = 0x0D; //9600bps @2M
    UART2->CR3 = 0x00;  //1位停止位,不开启同步模式
    UART2->CR2 = 0x2C;  // 使能发送和接收功能,并开启接收中断
    UART2->CR1 = 0x00;  //8位数据,不使用奇偶效验,并且使能UART1
    enableInterrupts(); //使能全局中断
        
   
    while (1)
    {
      for(i=0;i<sizeof(TxBuffer1);i++)
      {
        UART2->DR = TxBuffer1;//发送TxBuffer1数组的字符
        while((UART2->SR & 0x80) == 0x00);//查询发送缓冲区的字节是否已经发送出去
      }
    }

只让他发送数据,也是不行的,难道是我的配置出问题了。硬件应该不会有问题,做PWM,定时器都是可以实现。就是串口数据发送接收有问题,用IAR查看寄存器值,但是DR一直都没有变化,大神帮我看看是不是寄存器的配置出问题了,这是看别人的例程改的。刚刚接触,ST的设备

使用特权

评论回复
23
grasswolfs| | 2013-6-3 15:43 | 只看该作者
shaowei2072009 发表于 2013-6-3 14:48
开发板,用的IAR编译器。其他的程序都是正常的,就是串口输出有问题,而且寄存器DR的都不会发生变化。 ...

这个是开发板带的例程么?管脚复用的配置在其他包含文件里面有么?

使用特权

评论回复
24
shaowei2072009|  楼主 | 2013-6-3 15:46 | 只看该作者
grasswolfs 发表于 2013-6-3 15:43
这个是开发板带的例程么?管脚复用的配置在其他包含文件里面有么?

不是开发板带的例程,我自己参考别人写的,管脚没有进行复用。没有调用其他的文件,都是ST的库文件。其他的没修改

使用特权

评论回复
25
cjhk| | 2013-6-3 18:54 | 只看该作者
不是很了解   楼主   帮你顶一个   看看别人的意见  应该可以解决的

使用特权

评论回复
26
tyktyktyk| | 2013-6-3 19:26 | 只看该作者
串口的波特率要一致

使用特权

评论回复
27
grasswolfs| | 2013-6-3 21:02 | 只看该作者
shaowei2072009 发表于 2013-6-3 15:46
不是开发板带的例程,我自己参考别人写的,管脚没有进行复用。没有调用其他的文件,都是ST的库文件。其他 ...

网上到处都是例程,找一个就是了http://blog.21ic.com/user1/4534/archives/2010/70407.html,http://www.pudn.com/downloads200/doc/detail939106.html
自己写的没仔细读手册肯定出问题

使用特权

评论回复
28
shaowei2072009|  楼主 | 2013-6-3 23:28 | 只看该作者
grasswolfs 发表于 2013-6-3 21:02
网上到处都是例程,找一个就是了http://blog.21ic.com/user1/4534/archives/2010/70407.html,http://www ...

看过了 ,问题已经解决了,不过还是的谢谢你

使用特权

评论回复
29
shaowei2072009|  楼主 | 2013-6-4 08:41 | 只看该作者
是我自己的问题,串口中断配置成UART1了 ,2的中断为17,谢谢给位大神帮忙

使用特权

评论回复
30
kagaobin| | 2013-6-4 09:08 | 只看该作者
收到的数据应该是电脑串口发送出去的,单片机中断应该没有在工作。也许只是很简单的外围电路问题,先写个小程序,确认下单片机是否正常工作了。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
shaowei2072009 + 1
31
grasswolfs| | 2013-6-4 09:22 | 只看该作者
shaowei2072009 发表于 2013-6-4 08:41
是我自己的问题,串口中断配置成UART1了 ,2的中断为17,谢谢给位大神帮忙

嗯,解决了就好~

使用特权

评论回复
32
shaowei2072009|  楼主 | 2013-6-4 10:23 | 只看该作者
grasswolfs 发表于 2013-6-4 09:22
嗯,解决了就好~

是啊,还得谢谢大神的帮忙,不过查错也对串口有了进一步的了解,下面在遇到问题就应该知道怎么解决了。

使用特权

评论回复
33
grasswolfs| | 2013-6-4 10:38 | 只看该作者
shaowei2072009 发表于 2013-6-4 10:23
是啊,还得谢谢大神的帮忙,不过查错也对串口有了进一步的了解,下面在遇到问题就应该知道怎么解决了。 ...

串口才是开始,stm8也是开始,可以往高级一点的继续努力

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
shaowei2072009 + 2
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则