找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3054|回复: 2
收起左侧

stm32f103仿制FX2N源码

[复制链接]
ID:686633 发表于 2020-1-16 13:22 | 显示全部楼层 |阅读模式
IMG_20170121_211609.jpg IMG_20170121_212955_LI.jpg

单片机源程序如下:
  1. /********************************************************/
  2. // CPU需要:STM32F103--RAM内存不小于64K        Flash内存不小于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 定时器初始化
  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 三菱软件发送的命令
  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;          //处理一次发送指令

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

  69. /********************************************************/
  70. // CPU需要:STM32F103--RAM内存不小于48K        Flash内存不小于256K
  71. // 本代码已在STM32F103RCT6 RDT6 VCT6 VET6测试通过
  72. // 编辑日期:20151220
  73. // editor by DaShi
  74. /********************************************************/


  75.                 /*        低电压检测  断电保持数据
  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

复制代码
51hei.png

所有代码51hei附件下载:
FX2N-16MR发货包-2017.7z (6.01 MB, 下载次数: 165)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:658136 发表于 2021-9-11 23:20 | 显示全部楼层
楼主能分享一下PCB吗?
回复

使用道具 举报

ID:815274 发表于 2021-10-8 15:59 | 显示全部楼层
正是我所需的,非常详细!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表