久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5660|回復: 5
收起左側

STM32單片機串口通信Proteus仿真程序

[復制鏈接]
ID:658441 發表于 2020-11-5 14:36 | 顯示全部樓層 |閱讀模式
STM32的串口實驗,里面有兩個仿真圖,一個可以顯示,另一個可以顯示波形和顯示。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

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


  5. int main(void)
  6. {        
  7.         u8 t;
  8.         u8 len;        
  9.         u16 times=0;

  10.         Stm32_Clock_Init(9); //系統時鐘設置
  11.         delay_init(72);             //延時初始化  
  12.         uart_init(72,9600);//串口初始化為115200
  13.         LED_Init();        //初始化與LED連接的硬件接口
  14.         printf("\r\nhello world!\r\n");
  15.         while(1)
  16.         {

  17.                 if(USART_RX_STA&0x80)
  18.                 {                                          
  19.                         len=USART_RX_STA&0x3f;//得到此次接收到的數據長度
  20.                         printf("\r\n數據的長度=%d\n",len);
  21.                         printf("\r\n您發送的消息為:\r\n\r\n");
  22.                     while((USART1->SR & 0x40) != 0x40);   //置位TE將使得USART在第一個數據幀前發送一空閑幀
  23.                         for(t=0;t<len;t++)
  24.                         {
  25.                                 USART1->DR=USART_RX_BUF[t];
  26.                                 while((USART1->SR&0X40)==0);//等待發送結束
  27.                         }
  28.                         printf("\r\n\r\n");//插入換行
  29.                         USART_RX_STA=0;
  30.                 }else
  31.                 {
  32.                         times++;
  33.                         if(times%5000==0)
  34.                         {
  35.                                 printf("\r\nALIENTEK NANO STM32開發板 串口實驗\r\n");
  36.                                 printf("正點原子@ALIENTEK\r\n\r\n\r\n");
  37.                         }
  38.                         if(times%200==0)printf("請輸入數據,以回車鍵結束\r\n");  
  39.                         if(times%30==0)LED0=!LED0;//閃爍LED,提示系統正在運行.
  40.                         delay_ms(10);   
  41.                 }
  42.         }         
  43. }
復制代碼
  1. #include "key.h"
  2. #include "delay.h"

  3.             
  4. //按鍵初始化函數
  5. void KEY_Init(void)
  6. {
  7.         
  8.         RCC->APB2ENR|=1<<2;     //使能PORTA時鐘
  9.         RCC->APB2ENR|=1<<4;     //使能PORTC時鐘
  10.         RCC->APB2ENR|=1<<5;     //使能PORTD時鐘
  11.         GPIOA->CRL&=0XFFFFFFF0;        //PA0設置成輸入         
  12.         GPIOA->CRL|=0X00000008;
  13.         
  14.         GPIOC->CRH&=0XFFFFFF00;        //PC8、9設置成輸入         
  15.         GPIOC->CRH|=0X00000088;                          
  16.         GPIOC->ODR|=1<<8;                   //PC8上拉,PC8默認下拉
  17.         GPIOC->ODR|=1<<9;                   //PC9上拉,PC9默認下拉
  18.         
  19.         
  20.         GPIOD->CRL&=0XFFFFF0FF;        //PD2設置成輸入         
  21.         GPIOD->CRL|=0X00000800;   
  22.         GPIOD->ODR|=1<<2;                   //PD2上拉
  23.         
  24.                
  25. }
  26. //按鍵處理函數
  27. //返回按鍵值
  28. //mode:0,不支持連續按;1,支持連續按;
  29. //返回值:
  30. //0,沒有任何按鍵按下
  31. //KEY0_PRES,KEY0按下
  32. //KEY1_PRES,KEY1按下
  33. //KEY2_PRES,KEY2按下
  34. //WKUP_PRES,WK_UP按下
  35. //注意此函數有響應優先級,KEY0>KEY1>KEY2>WK_UP!!
  36. u8 KEY_Scan(u8 mode)
  37. {         
  38.         static u8 key_up=1;//按鍵按松開標志
  39.         if(mode)key_up=1;  //支持連按                  
  40.         if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))
  41.         {
  42.                 delay_ms(10);//去抖動
  43.                 key_up=0;
  44.                 if(KEY0==0)return KEY0_PRES;
  45.                 else if(KEY1==0)return KEY1_PRES;
  46.                 else if(KEY2==0)return KEY2_PRES;
  47.                 else if(WK_UP==1)return WKUP_PRES;
  48.         }else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1;              
  49.         return 0;// 無按鍵按下
  50. }
復制代碼


所有資料51hei提供下載:
串口通信實驗.7z (239.9 KB, 下載次數: 210)
回復

使用道具 舉報

ID:915610 發表于 2021-5-14 10:04 | 顯示全部樓層
請問還需要設置什么才能顯示,proteus打開直接運行,除了燈亮就沒了。
回復

使用道具 舉報

ID:320306 發表于 2022-1-10 14:37 | 顯示全部樓層
親測,發送可以,接收不可以@@@@
回復

使用道具 舉報

ID:387687 發表于 2022-4-4 16:36 | 顯示全部樓層

親測,發送可以
回復

使用道具 舉報

ID:1016170 發表于 2022-4-6 16:59 | 顯示全部樓層
proteus打開需要STM32什么仿真插件?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色视频网站免费 | 亚洲欧美一区二区三区国产精品 | 日本精品在线一区 | 日韩av在线一区二区 | 国产精品久久久亚洲 | 欧美一级特黄aaa大片在线观看 | 极品粉嫩国产48尤物在线播放 | 99视频网 | 香蕉大人久久国产成人av | 国产乱码精品1区2区3区 | 久久99精品国产麻豆婷婷 | 中文字幕亚洲一区二区三区 | 日韩精品无码一区二区三区 | 国产一级在线 | 日韩成人免费视频 | jlzzjlzz国产精品久久 | 久久久久亚洲av毛片大全 | 国产精品99一区二区 | 成人免费视频在线观看 | 激情久久网| 国产亚洲精品91 | 欧美久久久久久久 | 久久久久久久久精 | 91精品国产综合久久婷婷香蕉 | 午夜视频一区二区 | 国产黄色一级片 | 天堂资源 | 婷婷久久综合 | 在线免费观看欧美 | 91免费版在线观看 | 欧美综合国产精品久久丁香 | 人操人人干人 | 亚洲在线一区 | 久久久久久综合 | 台湾佬久久 | 91久久国产综合久久 | 91欧美| 在线观看成年人视频 | 中文字幕在线视频网站 | 成人影院在线视频 | 99精品欧美一区二区三区综合在线 |