找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8692|回復: 15
打印 上一主題 下一主題
收起左側(cè)

Proteus全網(wǎng)首次實現(xiàn)STMF103串口仿真

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:307689 發(fā)表于 2019-4-9 15:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
特別說明:由于Proteus的STM32F103仿真模型,在讀取串口的輸入數(shù)據(jù)時,只能正確讀取第1個字符,所以我特地在main()函數(shù)中加入switch語句做判斷處理。


完整代碼如下:
#include "sys.h"
#include "usart.h"  
#include "delay.h"
#include "led.h"
#include "key.h"
//串口實驗   
int main(void)
{   
u8 t;
u8 len;
u16 times=0;  
Stm32_Clock_Init(9); //系統(tǒng)時鐘設置
delay_init(72);      //延時初始化
uart_init(72,9600);  //串口初始化為9600
LED_Init();      //初始化與LED連接的硬件接口   
while(1)
{
  #define Proteus_SIM  1  //1使能Proteus仿真;0禁止Proteus仿真
  switch(Proteus_SIM)
  {
   case 1://Proteus仿真
    if(USART_RX_STA>0)
    {
     printf("\r\n您發(fā)送的消息為:\r\n");
     for(t=0;t<1;t++)//Proteus的STM32F103仿真模型只能正確接收第一個字符
     {
      USART1->DR=USART_RX_BUF[t];
      while((USART1->SR&0X40)==0);//等待發(fā)送結(jié)束
     }
     printf("\r\nProteus的STM32F103仿真模型只能正確接收第一個字符\r\n\r\n");//插入換行
     USART_RX_STA=0;
    }
    times++;
    if(times%5000==0)
    {
     printf("\r\nALIENTEK MiniSTM32開發(fā)板 串口實驗\r\n");
     printf("正點原子@ALIENTEK\r\n\r\n\r\n");
    }
    if(times%200==0)printf("請輸入數(shù)據(jù),以回車鍵結(jié)束\r\n");  
    if(times%30==0)LED0=!LED0;//閃爍LED,提示系統(tǒng)正在運行.
    delay_ms(10);      
    break;
   case 0://正點原子Mini板實物運行
    if(USART_RX_STA&0x8000)
    {        
     len=USART_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長度
     printf("\r\n您發(fā)送的消息為:\r\n");
     for(t=0;t<len;t++)
     {
      USART1->DR=USART_RX_BUF[t];
      while((USART1->SR&0X40)==0);//等待發(fā)送結(jié)束
     }
     printf("\r\n\r\n");//插入換行
     USART_RX_STA=0;
    }
    else
    {
     times++;
     if(times%5000==0)
     {
      printf("\r\nALIENTEK MiniSTM32開發(fā)板 串口實驗\r\n");
      printf("正點原子@ALIENTEK\r\n\r\n\r\n");
     }
     if(times%200==0)printf("請輸入數(shù)據(jù),以回車鍵結(jié)束\r\n");  
     if(times%30==0)LED0=!LED0;//閃爍LED,提示系統(tǒng)正在運行.
     delay_ms(10);   
    }   
    break;
   }
}  
}

全部資料51hei下載地址:
STM32F103_USART1_Proteus8.7.zip (8.68 MB, 下載次數(shù): 275)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

來自 2#
ID:346416 發(fā)表于 2019-12-31 17:27 | 只看該作者
請問能不能發(fā)個proteus的硬件電路截圖呀??因為我只有8.6版本的,打不開!感謝!。!
回復

使用道具 舉報

板凳
ID:102665 發(fā)表于 2019-5-8 16:29 | 只看該作者
點個贊,學習啦。。
回復

使用道具 舉報

地板
ID:552312 發(fā)表于 2019-6-5 10:15 | 只看該作者
謝謝分享,學習了
回復

使用道具 舉報

5#
ID:366897 發(fā)表于 2019-11-30 13:36 | 只看該作者
stm32串口仿真一直在調(diào)試,感謝分享,多謝!!
回復

使用道具 舉報

6#
ID:43627 發(fā)表于 2019-12-31 22:00 | 只看該作者
帥氣
回復

使用道具 舉報

7#
ID:693722 發(fā)表于 2020-2-29 15:29 | 只看該作者
Proteus文件打不開,Keil程序也打不開,有種懷疑?
回復

使用道具 舉報

8#
ID:693716 發(fā)表于 2020-3-9 10:22 | 只看該作者
感謝分享,下載學習下
回復

使用道具 舉報

9#
ID:348836 發(fā)表于 2020-3-9 20:09 | 只看該作者
看了一下 代碼 軟件品質(zhì)一般
回復

使用道具 舉報

10#
ID:265664 發(fā)表于 2020-3-10 13:08 | 只看該作者
正好拿來學習一下
回復

使用道具 舉報

11#
ID:72576 發(fā)表于 2020-4-8 19:48 | 只看該作者
謝謝分享,學習了
回復

使用道具 舉報

12#
ID:725120 發(fā)表于 2020-4-8 21:37 | 只看該作者
大佬有沒有硬件圖啊學習一下
回復

使用道具 舉報

13#
ID:483144 發(fā)表于 2020-5-9 21:40 | 只看該作者
Proteus仿真STM32串口時,發(fā)送端發(fā)送字符串時,字符串必須按字符逐個發(fā)送,每個字符之間用空for循環(huán)插入一點延時,類似于做簡單的發(fā)送流控制,就可以正常接收了
回復

使用道具 舉報

14#
ID:285416 發(fā)表于 2020-7-17 15:56 | 只看該作者
你portues用哪個版本做的?  我用的是8.7。不管是他原來自帶的例子,還是我從網(wǎng)上下載的例子。  能見總是能突然閃退。  祝你這個例子卻沒有這樣現(xiàn)象一直不會自動關(guān)閉的。是解決了我很大的問題。你想問問你,你是哪個版本的,能不能介紹給我一下?
回復

使用道具 舉報

15#
ID:523745 發(fā)表于 2022-6-5 16:23 | 只看該作者
樓主解開我多年的困惑
回復

使用道具 舉報

16#
ID:228452 發(fā)表于 2022-6-6 01:59 | 只看該作者
if you need snapshot...

Snapshot.jpg (245.31 KB, 下載次數(shù): 89)

Snapshot.jpg
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表