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

紧急求助关于STM8 UART通讯问题

[复制链接]
eefocusyes 提问时间:2014-9-9 13:29 /
使用STM8S003串口通讯时,发现只要上电接收就收到一堆00的数据??调试几天未找到原因
接收、发送的功能都是可以的,但是接收会丢数据 .速率设置都是对的,中断也没有问题
请问软件件可能是和原因造成?谢谢!
 补充:PD5是和UART1_TX,AIN5共用的,请问是不是I/O口需要设置?要怎么设置?
目前IO口配置如下,修改为初始的也没有用
 
I/O初始化
         //-------- 电压检测=PD5口高阻配(Uart_Tx) -----------------------
        PD_DDR&=~0B00100000; //
          PD_CR1&=~0B00100000;//0B00100000;
          PD_CR2&=~0B00100000; //PD5口电源电压AD检测        0B00100000;
                //-------- 速度=PD6口高阻配置 (Uart_Rx)--------------------------
        PD_DDR&=~0B01000000; //
          PD_CR1&=~0B01000000;//0B01000000
          PD_CR2&=~0B01000000; //PD6口AD检测//0B01000000
 
void UART1_Init(void)
{       
                 UART1_CR2=0x00;//使发送禁用TEN=0;
                        UART1_CR1=0x00;//设置M字长,8位数据位
                        UART1_CR3=0x00;//1位停止位
                        UART1_SR=0xc0;
                        UART1_GTR=0x00;
                        UART1_CR4=0x00;
                        UART1_GTR=0x00;
                        UART1_PSCR=0x00;
                UART1_BRR2=0x02;
            UART1_BRR1=0x68;
                UART1_CR2 = 0x2c;    //收发使能,收中断开
}
 
void UART1_sendchar(unsigned char c)
{
PD_ODR|=0x10; 
_asm("nop");
_asm("nop");
_asm("nop");
Delay1(100);
while(!(UART1_SR & 0x80));
UART1_DR=c;
_asm("nop");
_asm("nop");
_asm("nop");
_asm("nop");
Delay1(100);
PD_ODR&=0xef;
while((UART1_SR & 0x40) ==0);//发送是否完成
}
//UART1接收中断函数:
@far @interrupt void UART1_RX_IRQHandler (void)
{
   RxBuffer = UART1_DR; //Store the received byte in RxBuffer
        // if(RxBuffer!=00)
         {
                UART1_sendchar(RxBuffer);
                }
   return;
}
 
收藏 评论12 发布时间:2014-9-9 13:29

举报

12个回答
eefocusyes 回答时间:2014-9-9 14:36:44

RE:紧急求助关于STM8 UART通讯问题

哪位大神能够帮忙一下???
全是这种00数据:
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .................
回答时间:2014-9-9 16:16:27

RE:紧急求助关于STM8 UART通讯问题

这个问题,你可以先进入烧写模式,或者把串口关闭。看看串口是不是还有这么多的乱码,排除硬件干扰引起的。
eefocusyes 回答时间:2014-9-9 16:38:16

回复:紧急求助关于STM8 UART通讯问题

回复第 3 楼 于2014-09-09 16:16:27发表:
这个问题,你可以先进入烧写模式,或者把串口关闭。看看串口是不是还有这么多的乱码,排除硬件干扰引起的。
==>我如果把串口关闭,无法观察是否有乱码啊?我现在是通过PC串口的Debug工具来侦测数据的
另外I/O有什么需要设置的吗?
谢谢!
 
回答时间:2014-9-9 17:29:23

RE:紧急求助关于STM8 UART通讯问题

用PC串口监听就可以了。或者用示波器监听波形。
eefocusyes 回答时间:2014-9-9 18:54:46

回复:紧急求助关于STM8 UART通讯问题

回复第 5 楼 于2014-09-09 17:29:23发表:
用PC串口监听就可以了。或者用示波器监听波形。
==>用示波器从接收线上来看Tx上确实一直有波形,有数据,但我实际上没有发送,就不知道如何解决此问题!!
搞了几天了一直没搞定,觉得像是哪边初始化可能有问题,但实在没找到问题所在????
谢谢!
 
eefocusyes 回答时间:2014-9-9 18:54:48

回复:紧急求助关于STM8 UART通讯问题

回复第 5 楼 于2014-09-09 17:29:23发表:
用PC串口监听就可以了。或者用示波器监听波形。
==>用示波器从接收线上来看Tx上确实一直有波形,有数据,但我实际上没有发送,就不知道如何解决此问题!!
搞了几天了一直没搞定,觉得像是哪边初始化可能有问题,但实在没找到问题所在????
谢谢!
 
回答时间:2014-9-10 14:32:58

RE:紧急求助关于STM8 UART通讯问题

你看一下ST的TX有没有,如果没有,说明是转换芯片上有焊错器件了。看样子像是焊了一个电容在TX上。
eefocusyes 回答时间:2014-9-10 18:47:16

回复:紧急求助关于STM8 UART通讯问题

回复第 8 楼 于2014-09-10 14:32:58发表:
你看一下ST的TX有没有,如果没有,说明是转换芯片上有焊错器件了。看样子像是焊了一个电容在TX上。
==>我是ST的Tx直接到PC COM口,把STM8S003 Tx脚上其他的都断开了,用示波器看还是一直有数据输出,真是奇怪??
 
回答时间:2014-9-11 09:33:57

RE:紧急求助关于STM8 UART通讯问题

共地没有?另外,STM8的电平能和PC的电平匹配吗?
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版