找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3299|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STM32串口通信Proteus8.13仿真程序例子

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:479650 發(fā)表于 2022-5-16 13:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是某STM32教材串口寄存器編程的例子,要在教材配套的實(shí)驗(yàn)版上驗(yàn)證功能,我把程序修改了一下能用proteus里虛擬端口仿真。如果用VSPD驅(qū)動(dòng),還能用SSCOM等串口調(diào)試工具查看串口通信內(nèi)容。

串口仿真


串口調(diào)試仿真


單片機(jī)源程序如下:
  1. #include <stm32f10x.h>
  2. #include "sys.h"
  3. #include "usart.h"               
  4. #include "delay.h"        
  5. #include "led.h"                  

  6. int main(void)
  7. {                        
  8.         u8 t;
  9.         u8 len;
  10.         u16 times=0;        
  11.         Stm32_Clock_Init(9); //系統(tǒng)時(shí)鐘設(shè)置
  12.         delay_init(72);             //延時(shí)初始化
  13. //        uart_init(72,9600);//串口初始化為115200
  14.         uart_init(72,9600);
  15.         LED_Init();                           //初始化與LED連接的硬件接口   
  16.         while(1)
  17.         {
  18.                   if(USART_RX_STA&0x80)
  19.                 {               
  20.                          if(USART_RX_BUF[0]=='d'){
  21.                                  
  22.                                 LED1=!LED1;
  23.                          }
  24.                                           
  25.                         len=USART_RX_STA&0x3f;//得到此次接收到的數(shù)據(jù)長度

  26.                         for(t=0;t<len;t++)
  27.                         {
  28.                                 USART1->DR=USART_RX_BUF[t];
  29.                                 while((USART1->SR&0X40)==0);//等待發(fā)送結(jié)束
  30.                         }
  31.                         printf("\n\n");//插入換行
  32.                         USART_RX_STA=0;
  33.                 }
  34.                 else
  35.                 {
  36.                         times++;
  37.                         if(times%2000==0)
  38.                         {
  39.                                 printf("\r\nSTM32核心板串口通信\r\n");
  40.                                 printf("嵌入式技術(shù)與應(yīng)用開發(fā)項(xiàng)目教程(STM32版)\r\n\r\n");
  41.                         }
  42.                         if(times%200==0)
  43.                                 printf("請(qǐng)輸入數(shù)據(jù),以回車鍵結(jié)束\n");  
  44.                         if(times%30==0)
  45.                                 LED0=!LED0;//閃爍LED,提示系統(tǒng)正在運(yùn)行.
  46.                         delay_ms(10);
  47.                 }

  48.         }         
  49. }
復(fù)制代碼

Keil5代碼與Proteus8.13仿真下載(其他版本無法打開的,只能用8.13的Proteus):
STM32串口通信.7z (328.57 KB, 下載次數(shù): 170)

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
admin + 10 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:123925 發(fā)表于 2022-9-7 12:42 | 只看該作者
怎么是亂碼!
回復(fù)

使用道具 舉報(bào)

板凳
ID:97349 發(fā)表于 2024-3-27 22:41 | 只看該作者
直接元器件主頻設(shè)置為72M 虛擬串口9600 可以用
回復(fù)

使用道具 舉報(bào)

地板
ID:1074206 發(fā)表于 2024-3-29 17:46 | 只看該作者
還可以,但是能不能改一個(gè) C8T6版本
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表