搜索
bottom↓
回复: 13

stm32f103rct6单片机串口波形不对求解!

[复制链接]

出0入0汤圆

发表于 2017-1-15 13:03:12 | 显示全部楼层 |阅读模式
本帖最后由 牛东 于 2017-1-15 13:10 编辑

stm32的一个下位机串口通讯项目,串口波特率9600,设置如下,一位接收,8个数据位,一位停止

void uart_init(u32 pclk2,u32 bound)
{           
        float temp;
        u16 mantissa;
        u16 fraction;           
        temp=(float)(pclk2*1000000)/(bound*16);
        mantissa=temp;        
        fraction=(temp-mantissa)*16;         
        mantissa<<=4;
        mantissa+=fraction;
        RCC->APB2ENR|=1<<2;   
        RCC->APB2ENR|=1<<14;
        GPIOA->CRH&=0XFFFFF00F;
        GPIOA->CRH|=0X000008B0;
                  
        RCC->APB2RSTR|=1<<14;  
        RCC->APB2RSTR&=~(1<<14);              
        
         USART1->BRR=mantissa;
        USART1->CR1|=0X200C;
        USART1->CR2&=0Xcfff;  
        #if EN_USART1_RX               

        USART1->CR1|=1<<8;   
        USART1->CR1|=1<<5;            
        MY_NVIC_Init(1,3,USART1_IRQn,2);
        #endif
}


主程序调用如下:

          Stm32_Clock_Init(9);         //72M
        uart_init(72,9600);  //9600


PCB上电后测得一个数据 F0 的波形如下






9600波特率,每一位100US即一格,10位就是10格,可是以上的波形明显是11格还多,不解! ...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2017-1-15 13:16:06 | 显示全部楼层
你要先确定你的系统时钟是否正确

出0入0汤圆

发表于 2017-1-15 13:19:54 | 显示全部楼层
示波器检定过期了,不准

出0入0汤圆

 楼主| 发表于 2017-1-16 11:22:03 | 显示全部楼层
dog 发表于 2017-1-15 13:16
你要先确定你的系统时钟是否正确

用两台示波器测过,8M!!

出0入0汤圆

发表于 2017-1-16 14:23:34 | 显示全部楼层
牛东 发表于 2017-1-16 11:22
用两台示波器测过,8M!!

你的外部是8M可以量得到,那你的内部PLL,SYSCLK,PCLK设置呢?
不搞清楚这些是不行的,
我猜你是个小白。

出0入0汤圆

发表于 2017-1-16 14:49:53 | 显示全部楼层
不是每种波特率都能 100%对得上,都有个误差,你可以尝试其它波特率是不是更准一些

另外现在的9600能通信上吗?

出0入0汤圆

 楼主| 发表于 2017-1-17 09:09:44 | 显示全部楼层
avr_sz 发表于 2017-1-16 14:49
不是每种波特率都能 100%对得上,都有个误差,你可以尝试其它波特率是不是更准一些

另外现在的9600能通信 ...

57600波特率串口下载程序没有问题,串口通讯向上发送数据没有问题,但发送和接收同时打开,串口助手会收到错误数据!(程序有CRC8校验)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-1-17 11:48:51 | 显示全部楼层
NJ8888 发表于 2017-1-15 13:19
示波器检定过期了,不准

你的眼睛很贼啊!!!

出0入0汤圆

 楼主| 发表于 2017-1-17 11:53:19 | 显示全部楼层
avr_sz 发表于 2017-1-16 14:49
不是每种波特率都能 100%对得上,都有个误差,你可以尝试其它波特率是不是更准一些

另外现在的9600能通信 ...

修正一下!!使用串口助手接收数据没有问题,但发送和接收同时打开,串口助手会收到错误数据!
另外,波形是从STM32串口端测出来的波形!!

谢谢!!!

出0入0汤圆

发表于 2017-1-17 18:44:56 | 显示全部楼层
探头补偿有问题

出0入0汤圆

发表于 2017-1-17 20:08:20 来自手机 | 显示全部楼层
程序问题

出0入0汤圆

 楼主| 发表于 2017-1-18 08:52:42 | 显示全部楼层
mangoes 发表于 2017-1-17 18:44
探头补偿有问题

但是我测STC的单片机串口通讯的波形是对的哦!!9600波特率,数据也是F0

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-1-18 11:03:01 | 显示全部楼层
牛东 发表于 2017-1-18 08:52
但是我测STC的单片机串口通讯的波形是对的哦!!9600波特率,数据也是F0

我说的只是示波器的问题
你这个情况最好找一个可以用的开发板例程来做对比,一点一点的换上你的代码,这样好排查一些。
如果换了开发板例程的代码还是不行,那你就要考虑硬件问题了

出0入0汤圆

 楼主| 发表于 2017-1-18 11:47:14 | 显示全部楼层
mangoes 发表于 2017-1-18 11:03
我说的只是示波器的问题
你这个情况最好找一个可以用的开发板例程来做对比,一点一点的换上你 ...

有道理,我也是这样想的!!谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 22:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表