找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11528|回复: 22
收起左侧

全球首发,全网最快,全世界第一个Proteus8.8仿真stm32f401实现串口通信(寄存器版)

  [复制链接]
ID:230913 发表于 2019-1-29 15:40 | 显示全部楼层 |阅读模式
全球首发,全网最快,全球第一个用Proteus8.8软件仿真stm32f401芯片实现串口通信(寄存器版)

使用寄存器实现,没有bug
库函数有bug,可以发送后但是无法接收,接收乱码
本人时间精力有限,希望高手能够解决bug

实验现象:
        本实验,STM32通过串口1和上位机对话,STM32在收到上位机发过来的字符串(以回车换行结束)后,原原本本的返回给上位机。下载后,DS0闪烁,提示程序在运行,同时每隔 一定时间,通过串口1输出一段信息到电脑。

注:调试需安装虚拟串口

QQ图片20190129152936.png 0.png

单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"

  5. int main(void)
  6. {
  7.         u8 t;
  8.         u8 len;        
  9.         u16 times=0;   
  10.         Stm32_Clock_Init(168,8,2,7);//设置时钟,84Mhz
  11.         delay_init(84);                //延时初始化
  12.         uart_init(42,9600);        //串口初始化为115200
  13.         LED_Init();                                  //初始化与LED连接的硬件接口   
  14.         while(1)
  15.         {
  16.                 if(USART_RX_STA&0x8000)
  17.                 {                                          
  18.                         len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
  19.                         printf("\r\n您发送的消息为:\r\n");
  20.                         for(t=0;t<len+1;t++)
  21.                         {
  22.                                 USART1->DR=USART_RX_BUF[t];
  23.                                 while((USART1->SR&0X40)==0);//等待发送结束
  24.                         }
  25.                         printf("\r\n\r\n");//插入换行
  26.                         USART_RX_STA=0;
  27.                 }else
  28.                 {
  29.                         times++;

  30.                         if(times%200==0)printf("请输入数据,以回车键结束\r\n");  
  31.                         if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
  32.                         delay_ms(10);   
  33.                 }
  34.         }
  35. }
复制代码

所有资料51hei提供下载:
proteus stm32f401 实现串口通信.7z (110.09 KB, 下载次数: 470)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:104982 发表于 2019-2-14 18:23 | 显示全部楼层
厉害,学习了
回复

使用道具 举报

ID:521983 发表于 2019-5-22 10:54 | 显示全部楼层
感谢楼主
回复

使用道具 举报

ID:478218 发表于 2019-5-25 16:27 | 显示全部楼层
厉害了呀
回复

使用道具 举报

ID:276703 发表于 2020-1-1 17:22 | 显示全部楼层
感谢分享  学习这个软件
回复

使用道具 举报

ID:679186 发表于 2020-1-2 17:28 | 显示全部楼层
感谢分享  学习这个软件
回复

使用道具 举报

ID:524850 发表于 2020-2-13 09:14 | 显示全部楼层
有这个软件的链接吗,求分享
回复

使用道具 举报

ID:564771 发表于 2020-3-7 17:35 | 显示全部楼层
请问楼主或者有人解决了嘛
回复

使用道具 举报

ID:265664 发表于 2020-3-10 12:35 | 显示全部楼层
请问楼主这个问题解决没,我对这个实验也很感兴趣
回复

使用道具 举报

ID:710744 发表于 2020-3-18 20:21 | 显示全部楼层
这个不错,stm32串口通信
回复

使用道具 举报

ID:615889 发表于 2020-4-8 23:59 | 显示全部楼层
谢谢,学习了
回复

使用道具 举报

ID:710460 发表于 2020-4-14 12:15 | 显示全部楼层
F4串口通信注意事项.jpg
在正点原子的   F4串口实验基础之上按照上图修改,即可实现
回复

使用道具 举报

ID:342223 发表于 2020-4-23 00:51 | 显示全部楼层
楼主,你使用的就是库函数,怎么就实现了,而且我打开你的附件,也能正常按要求运行。但我用我自己的F1系列的在仿真串口,就是能发送不能正常的接收,我知道是波特率的问题,无论我怎么修改调试,结果还是不理想,这个问题困扰我很久了,希望能指点一下!
回复

使用道具 举报

ID:230913 发表于 2020-5-14 20:35 | 显示全部楼层
tonywuplc 发表于 2020-4-23 00:51
楼主,你使用的就是库函数,怎么就实现了,而且我打开你的附件,也能正常按要求运行。但我用我自己的F1系列 ...

这个内部实现,真的是寄存器
回复

使用道具 举报

ID:358536 发表于 2020-5-20 07:05 | 显示全部楼层
happy87 发表于 2020-5-14 20:35
这个内部实现,真的是寄存器

F1的接收是有问题,我试了寄存器、库函数、hal库都不行,不同波特率也试了,都是不能正确接受数据串,单个数据接收正常,发射正常。但是没有用过查询方式,用了DMA和中断都是不行的,查询由于太占时间,仿真本来就卡,也就算了
回复

使用道具 举报

ID:710460 发表于 2020-5-23 00:38 | 显示全部楼层
526637566@qq.co 发表于 2020-5-20 07:05
F1的接收是有问题,我试了寄存器、库函数、hal库都不行,不同波特率也试了,都是不能正确接受数据串,单 ...

https://www.ixigua.com/i6799650795739415052/

可以看下这个视频
回复

使用道具 举报

ID:765366 发表于 2020-5-31 09:04 | 显示全部楼层
感谢分享,学习一下
回复

使用道具 举报

ID:761660 发表于 2020-6-6 09:26 | 显示全部楼层
很强大。
回复

使用道具 举报

ID:285416 发表于 2020-7-30 21:19 来自手机 | 显示全部楼层
楼主师傅能不能搞个复杂一点儿的sd卡 或usb  串口仿真不用发送,我只监视内容就可以。
回复

使用道具 举报

ID:285416 发表于 2020-7-30 21:21 来自手机 | 显示全部楼层
还有,我看到cdsn。里面有改成f 407。的帖子,但是他的源码我没有c币下载不了。帮我尝试一下这个嘛,我也现在正在搞这个。
回复

使用道具 举报

ID:97832 发表于 2020-8-5 10:52 | 显示全部楼层

这个不错,正在学习stm32串口通信
回复

使用道具 举报

ID:883317 发表于 2021-4-4 10:25 | 显示全部楼层
原理一直没人弄懂吗
回复

使用道具 举报

ID:1100713 发表于 2023-11-22 11:24 | 显示全部楼层
谢谢楼主学习到了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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