標(biāo)題: 全球首發(fā) 全世界第一個(gè)protues 仿真stm32 f103 實(shí)現(xiàn)spi [打印本頁(yè)]

作者: happy87    時(shí)間: 2017-9-4 17:55
標(biāo)題: 全球首發(fā) 全世界第一個(gè)protues 仿真stm32 f103 實(shí)現(xiàn)spi
全球首發(fā) 全世界第一個(gè)protues 仿真stm32 f103 實(shí)現(xiàn)spi
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)



stm32單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "spi.h"
  3. #include "Module.h"
  4. #include<stdio.h>
  5. void Delay_Ms(u16 time);
  6. void RCC_Configuration(void);
  7. //void GPIO_Configuration(void);
  8. u32 retry=0;       
  9. int i=0;

  10. /* Private functions ---------------------------------------------------------*/
  11. /*******************************************************************************
  12. * Function Name  : main
  13. * Description    : Main program.
  14. * Input          : None
  15. * Output         : None
  16. * Return         : None
  17. *******************************************************************************/
  18. int main(void)
  19. {

  20.           RCC_Configuration();//使能外設(shè)時(shí)鐘
  21.         //GPIO_Configuration();
  22.         SEG_Init();
  23.         SPI1_Init();       
  24.         //SPI1_SetSpeed(SPI_BaudRatePrescaler_256);       
  25.        
  26.         //========實(shí)現(xiàn)數(shù)碼管顯示==========
  27.           while (1)
  28.           {
  29.                        
  30.                        

  31. SEG_Display(8830,0);
  32.                        
  33.                        
  34.                 /*for(i=0;i<9999;i++)
  35.                 {
  36.                         for(j=0;j<500;j++)
  37.                                 SEG_Display(i,0);
  38.                 }        */          
  39.                 //SEG_Display(1234,3);
  40.           }
  41. }

  42. /*******************************************************************************
  43. * Function Name  : Delay_Ms
  44. * Description    : delay 1 ms.
  45. * Input          : time (ms)
  46. * Output         : None
  47. * Return         : None
  48. *******************************************************************************/
  49. void Delay_Ms(u16 time)  //延時(shí)函數(shù)
  50. {
  51.         u16 i,j;
  52.         for(i=0;i<time;i++)
  53.                   for(j=1000;j>0;j--);
  54. }

  55. /*******************************************************************************
  56. * Function Name  : RCC_Configuration
  57. * Description    : Configures the different system clocks.
  58. * Input          : None
  59. * Output         : None
  60. * Return         : None
  61. *******************************************************************************/
  62. void RCC_Configuration(void)
  63. {
  64.         //==========================使用外部RC晶振========================================
  65.           RCC_DeInit();                                //初始化為缺省狀態(tài)
  66.         //RCC_HSICmd(ENABLE);
  67.           RCC_HSEConfig(RCC_HSE_ON);  //高速時(shí)鐘使能
  68.           while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);  //等待高速時(shí)鐘使能就緒

  69.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);        //Enable Prefetch Buffer
  70.     FLASH_SetLatency(FLASH_Latency_2);                                                  // Flash 2 wait state
  71.     RCC_HCLKConfig(RCC_SYSCLK_Div1);                                                 // HCLK = SYSCLK
  72.     RCC_PCLK2Config(RCC_HCLK_Div1);                                                        // PCLK2 = HCLK
  73.     RCC_PCLK1Config(RCC_HCLK_Div2);                                                          // PCLK1 = HCLK/2
  74.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);        // PLLCLK = 8MHz * 9 = 72 MHz  
  75.     RCC_PLLCmd(ENABLE);                                                                                  // Enable PLL
  76.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);                // Wait till PLL is ready

  77.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);                                  // Select PLL as system clock source
  78.     while(RCC_GetSYSCLKSource() != 0x08);                                        // Wait till PLL is used as system clock source
  79.        
  80.        
  81.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);        // 使能APB2外設(shè)GPIOA時(shí)鐘
  82.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);        // 使能APB2外設(shè)GPIOB時(shí)鐘
  83.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);        // 使能APB2外設(shè)GPIOC時(shí)鐘
  84.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 , ENABLE);        // 使能APB2外設(shè)SPI1時(shí)鐘
  85. }
復(fù)制代碼

所有資料51hei提供下載:
protues stm32 f103 實(shí)現(xiàn)spi.rar (1.56 MB, 下載次數(shù): 859)





作者: timo的小蘑菇    時(shí)間: 2017-9-27 09:16
你是哪個(gè)版本的protues呢
作者: happy87    時(shí)間: 2017-10-13 20:20
8.6 支持stm32
作者: qmh48696705    時(shí)間: 2017-10-16 18:13

學(xué)習(xí)下,初學(xué)不知道怎么入手
作者: tonyinspira    時(shí)間: 2018-3-13 08:42
請(qǐng)問(wèn)大神們知道如何設(shè)置定時(shí)器嗎?為什么程序在硬件上沒(méi)有問(wèn)題,但是在PROTUES上就不能正常跑。
作者: tonyinspira    時(shí)間: 2018-3-13 08:43
硬件上沒(méi)有問(wèn)題,Protues上卻不能運(yùn)行。
作者: avery423    時(shí)間: 2018-4-22 12:45
建議仿真成功的整理一下。這里面還有些疑問(wèn):
1,hex文件是用什么軟件生成的,如果是keil,哪個(gè)版本?高版本的keil,元件庫(kù)好你要單獨(dú)下的,這個(gè)器件怎么下?
2,仿真程序里很多STM32的頭文件,庫(kù)文件,是元件包里自帶嗎》?
作者: dengyifenzhong    時(shí)間: 2018-4-23 09:46
收藏了,但是打開(kāi)運(yùn)行,好多問(wèn)題呢,不知道怎么回事
作者: happy87    時(shí)間: 2018-4-23 20:17
回復(fù)樓上的問(wèn)題:
1.stm32仿真不能用keil 4版本,必須用5版本以上,至于包怎么下這是基本操作
2.上傳時(shí)所用文件都上傳,只會(huì)多不會(huì)少,但是版主會(huì)為了減輕服務(wù)器壓力,做一些刪減
。你們到手的文件,我不知道
3.仿真用的stm32的spi模塊,不是模擬spi,因此難度很大,為了體現(xiàn)效果放慢了速度。
4.我用的3.5的庫(kù)無(wú)法仿真中斷 和 I2C 這個(gè)是protues的自己的問(wèn)題,但是能不能用hal庫(kù)仿真,或者更專業(yè)的gcc編譯器,我不清楚,個(gè)人能力精力有限,protues無(wú)法仿真中斷是歷史遺留問(wèn)題,例如arm7用iar會(huì)出現(xiàn)bug,但在ADS下卻可以仿真
5.上傳程序本身是想拋磚引玉,希望更多的高手參與,來(lái)解決I2C中斷,甚至更難的問(wèn)題
作者: dengyifenzhong    時(shí)間: 2018-4-25 11:12
@樓主,但是打開(kāi)程序直接不能運(yùn)行,我簡(jiǎn)單寫了一個(gè)led控制燈,也不行,不知道怎么回事,最后我直接led加電源,一端加地,運(yùn)行,還是不行,不知道是不是我protue有問(wèn)題嗎
作者: happy87    時(shí)間: 2018-4-29 19:33
dengyifenzhong 發(fā)表于 2018-4-25 11:12
@樓主,但是打開(kāi)程序直接不能運(yùn)行,我簡(jiǎn)單寫了一個(gè)led控制燈,也不行,不知道怎么回事,最后我直接led加電 ...

protues自帶的例子行則行,使用前加載一下hex
作者: 失心戀2015    時(shí)間: 2018-4-30 15:27
這是protues哪個(gè)版本?
作者: happy87    時(shí)間: 2018-5-6 17:13
失心戀2015 發(fā)表于 2018-4-30 15:27
這是protues哪個(gè)版本?

8.6 以上都行
作者: lawrence2018    時(shí)間: 2018-5-27 19:29
好東西啊
作者: 見(jiàn)龍?jiān)谔?nbsp;   時(shí)間: 2018-6-14 09:09
感謝分享,先拿來(lái)試試
作者: pengyongnet    時(shí)間: 2018-6-30 08:43
謝謝分享,學(xué)習(xí)了,感謝了
作者: pengyongnet    時(shí)間: 2018-6-30 08:44
感謝樓主的分享,開(kāi)始學(xué)習(xí)下
作者: pengyongnet    時(shí)間: 2018-6-30 08:45
感謝樓主分享,有空的時(shí)候,不懂請(qǐng)教下你
作者: 蜘、蛛。    時(shí)間: 2018-8-6 14:20
遇到了些問(wèn)題,提示電源沒(méi)有配置
作者: happy87    時(shí)間: 2018-8-13 10:22
tonyinspira 發(fā)表于 2018-3-13 08:42
請(qǐng)問(wèn)大神們知道如何設(shè)置定時(shí)器嗎?為什么程序在硬件上沒(méi)有問(wèn)題,但是在PROTUES上就不能正常跑。

定時(shí)器的仿真我已經(jīng)解決,但是是proteus自帶的gcc for arm編譯器,目前無(wú)法用keil
有一個(gè)bug,就是如果使用tm3或者tm2必須同時(shí)開(kāi)啟tm1中斷,
以后會(huì)上傳

作者: oliverlau2k11    時(shí)間: 2018-8-13 20:58
很棒的資料,已使用,謝謝
作者: dbxzjq    時(shí)間: 2018-8-25 19:33
感謝分享,等了許久的STM32仿真了
作者: ytouc317    時(shí)間: 2018-8-30 06:58
學(xué)習(xí)一些,加油
作者: bennyox    時(shí)間: 2018-9-5 11:19
感謝樓主,下了試試看。
作者: wangXJ    時(shí)間: 2018-9-22 09:32
CM3.DLL failed to create DSIM model for primitive type 'CM3_CORE'. [U1_CM3CORE]

提示出現(xiàn)這樣的錯(cuò)誤。是什么情況?
作者: goxp49    時(shí)間: 2018-10-29 16:52


學(xué)習(xí)下,初學(xué)不知道怎么入手
作者: onepcb    時(shí)間: 2018-11-1 21:45
謝謝分享!,,,,
作者: onepcb    時(shí)間: 2018-11-1 21:45
謝謝分享!,,,,
作者: 51hxgdd    時(shí)間: 2018-11-2 19:22
謝謝樓主
作者: 525215455    時(shí)間: 2018-11-24 12:37
謝謝分享!,,,,
作者: 瓶子    時(shí)間: 2018-11-27 19:45
學(xué)習(xí)下,開(kāi)發(fā)板不方便,proteus方便點(diǎn)
作者: hujj    時(shí)間: 2018-11-28 10:55
我以為是下載proteus呢
作者: hujj    時(shí)間: 2018-11-28 10:57
我還以為是下載proteus呢。
作者: grodd    時(shí)間: 2018-12-10 18:24
謝謝分享。!
作者: 下一秒    時(shí)間: 2018-12-20 11:13
剛解決定時(shí)器的問(wèn)題 現(xiàn)在打開(kāi)DAC定時(shí)器也不工作了 不知道打開(kāi)AD會(huì)不會(huì)也有問(wèn)題
作者: 我就要飛刀    時(shí)間: 2019-2-10 09:33
Vsm調(diào)試器
發(fā)生關(guān)鍵仿真錯(cuò)誤。
我用的是Proteus 8.6
作者: liwjee    時(shí)間: 2019-2-26 11:18
過(guò)來(lái)看看學(xué)習(xí)學(xué)習(xí)
作者: xqtop    時(shí)間: 2019-3-2 21:42

感謝分享
作者: liuyw001    時(shí)間: 2019-3-29 14:40
多謝分享
作者: z1161948857    時(shí)間: 2019-4-16 14:42
問(wèn)下樓主編程用的keil的哪個(gè)版本?
作者: dicarus    時(shí)間: 2019-5-4 22:47
下載學(xué)習(xí)一下

作者: blkhumor    時(shí)間: 2019-6-9 00:56
挺不錯(cuò)的,就是仿真得特慢
作者: longyo    時(shí)間: 2019-6-9 08:44
謝謝分享。。。。。
作者: long2022    時(shí)間: 2019-6-9 11:37
看一下學(xué)習(xí)學(xué)習(xí),
作者: lhf58    時(shí)間: 2019-8-12 19:28

學(xué)習(xí)下,開(kāi)發(fā)板不方便,proteus方便點(diǎn)
作者: lhf58    時(shí)間: 2019-8-13 13:23
學(xué)習(xí)下,初學(xué)不知道怎么入手
作者: bcdz    時(shí)間: 2019-8-13 14:50
支持!。。
作者: 鵬博士PBs    時(shí)間: 2019-8-13 16:21
版本是8.6的吧
作者: wellmax_Goo    時(shí)間: 2019-8-13 17:37
謝謝樓主分享,感激不盡1
作者: 萬(wàn)古琴    時(shí)間: 2019-8-25 11:22
太棒了 能仿真運(yùn)行  大贊 特贊!謝謝!
作者: 張明211    時(shí)間: 2019-10-20 09:02
資料不錯(cuò),值得借鑒。
作者: 289254640    時(shí)間: 2020-1-28 21:19
感謝樓主分享!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1