找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm32f103仿制FX2N源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主


單片機(jī)源程序如下:
  1. /********************************************************/
  2. // CPU需要:STM32F103--RAM內(nèi)存不小于64K        Flash內(nèi)存不小于128K
  3. // 本代碼已在STM32F103RDT6測試通過


  4. /********************************************************/

  5. #include "stm32f10x.h"
  6. #include "stm32f10x_flash.h"
  7. #include <OS_Config.h>
  8. #include "abs_addr.h"
  9. #include <stdio.h>
  10. #include <absacc.h>

  11. extern void Process_switch(void);
  12. extern void TX_Process(void);
  13. extern void Stm32_Clock_Init(u8 PLL);
  14. extern u8 rx_end;
  15. extern u16 all_data[16600] __at (0x20005002);
  16. extern void backup_data(void);
  17. extern void recover_data(void);
  18. extern void off_out(void);
  19. u32  startup  __at (0x2000D5F0);
  20. u8 power_down;
  21. u8 Run_Flag=1;
  22. #define BmpHeadSize (54)
  23. #ifdef __GNUC__
  24.   #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
  25. #else
  26.   #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  27. #endif /* __GNUC__ */

  28. static void Delay(__IO uint32_t nCount)
  29.   {  while(nCount--); }

  30. int main(void)
  31. {  
  32.   u16 LED=0;
  33. //  u16 Timer[2];
  34.   Delay(10000);
  35.   init_xy();                    //PLC 輸入輸出初始化
  36.   Stm32_Clock_Init(9);
  37.   startup=0X55AA55AA;
  38.   init_xy();                     //PLC 輸入輸出初始化
  39.   Delay(6);
  40.   USART_DeInit(USART1);         //串口初始化
  41.   Delay(6);
  42.   usart_init();                 //串口初始化
  43.   USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
  44.   TIM5_Init();                 //TIMER5 定時(shí)器初始化
  45.   NVIC_Configuration();         //中斷程序全部等級劃分
  46.   power_down=5;
  47.   while (1)
  48.   {        
  49.                 y_refresh();
  50.                 x_refresh();
  51.                 all_prog_process();


  52.                 switch(rx_end)          //  解析FX2N 三菱軟件發(fā)送的命令
  53.                 {
  54.                         case 1  :
  55.                                   rx_end=0,
  56.                                   Process_switch(),
  57.                                   TX_Process(),
  58.                                   LED=800;
  59.                                   break;          //處理三菱軟件的程序

  60.                         case 5  :
  61.                                   rx_end=0,
  62.                                   TX_Process(),
  63.                                   LED=800;  
  64.                                   break;          //處理一次發(fā)送指令

  65.                         default :   
  66.                              if(LED>=1) LED--;                                 
  67.                               break;           
  68.                 }

  69. /********************************************************/
  70. // CPU需要:STM32F103--RAM內(nèi)存不小于48K        Flash內(nèi)存不小于256K
  71. // 本代碼已在STM32F103RCT6 RDT6 VCT6 VET6測試通過
  72. // 編輯日期:20151220
  73. // editor by DaShi
  74. /********************************************************/


  75.                 /*        低電壓檢測  斷電保持?jǐn)?shù)據(jù)
  76.                 if(!PVD)           //MY PCB== !PVD
  77.                 {        
  78.                         if(Timer[0]==0)
  79.                         recover_data();
  80.                         if(Timer[0]<=60000)
  81.                         Timer[0]++;
  82.                 }
  83.                 else
  84.                 {
  85.                         all_data[0x180/2]=0;
  86.                         if(Timer[0]>=100)
  87.                         backup_data();
  88.                         Timer[0]=0;
  89.                 }
  90.                
  91.                 //*/
  92.         }
  93. }


  94. PUTCHAR_PROTOTYPE
  95. {
  96.   USART_SendData(USART2, (uint8_t) ch);
  97.   while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
  98.   return ch;
  99. }
  100. #ifdef  USE_FULL_ASSERT
  101. void assert_failed(uint8_t* file, uint32_t line)
  102. {  while (1); }
  103. #endif

復(fù)制代碼


所有代碼51hei附件下載:
FX2N-16MR發(fā)貨包-2017.7z (6.01 MB, 下載次數(shù): 168)

評分

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

查看全部評分

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

使用道具 舉報(bào)

沙發(fā)
ID:658136 發(fā)表于 2021-9-11 23:20 | 只看該作者
樓主能分享一下PCB嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:815274 發(fā)表于 2021-10-8 15:59 | 只看該作者
正是我所需的,非常詳細(xì)!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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