标题: 51单片机代码如何转换成arm代码? [打印本页]

作者: fywcy    时间: 2019-6-3 21:53
标题: 51单片机代码如何转换成arm代码?
我用的是德飞莱 七星虫系列的stm32f103主板,型号:尼莫M3S,想要连接心率传感器,但是这款传感器自带的调试程序是51单片机的,想改成arm的程序。自带程序中用51模拟了IIC接口,stm32主板自带IIC接口,我现在要把原51代码转换成arm代码,望各位指教!

单片机源程序如下:
  1. //-------------------------------------------------------------------------------------////程序名:          MAX30100测试程序                  
  2. //版本:            V1.0                        
  3. //功能:            测试MAX30100的ID及温度部分功能。
  4. //-------------------------------------------------------------------------------------//
  5. //RCWL-0530模块与51接口连接:
  6. // 1:VCC   --〉   1.8V-5.5V电源
  7. // 2:SCL   --〉   P3.5
  8. // 3:SDA   --〉   P3.7
  9. // 4:INT   --〉   NC
  10. // 5:IRD   --〉   NC
  11. // 6:RD    --〉   NC
  12. // 7:GND   --〉   地
  13. //-------------------------------------------------------------------------------------//
  14. # include <reg52.h>
  15. # include <stdio.h>
  16. # include <intrins.h>
  17. //定义IIC接口
  18. sbit IIC_SCL    =P3^5;     //IIC的SCL
  19. sbit IIC_SDA    =P3^7;     //IIC的SDA
  20. bit  IIC_ACK;              //IIC的ACK
  21. int  rda;                  //IIC读出
  22. //-------------------------------------------------------------------------------------//
  23. //函数:    delayms()
  24. //功能:    延时程序
  25. //-------------------------------------------------------------------------------------//
  26. void delayms(unsigned int ms)
  27. {
  28.         unsigned char i=100,j;
  29.         for(;ms;ms--)
  30.         {
  31.                 while(--i)
  32.                 {
  33.                         j=10;
  34.                         while(--j);
  35.                 }
  36.         }
  37. }
  38. //-------------------------------------------------------------------------------------//
  39. //函数:    void iic_start();
  40. //功能:    I2C总线开始
  41. //-------------------------------------------------------------------------------------//
  42. //   SCL   --- --- ___
  43. //   SDA   --- ___ ___
  44. void iic_start()
  45. {  
  46. IIC_SDA=1;
  47. _nop_();
  48. _nop_();
  49. IIC_SCL=1;         
  50. _nop_();
  51. _nop_();
  52. IIC_SDA=0;
  53. _nop_();
  54. _nop_();
  55. IIC_SCL=0;
  56. _nop_();
  57. _nop_();
  58. }
  59. //-------------------------------------------------------------------------------------//
  60. //函数:    void iic_stop();
  61. //功能:    I2C总线结束
  62. //需定义:
  63. //-------------------------------------------------------------------------------------//
  64. //   SCL   ___ --- ---
  65. //   SDA   ___ ___ ---
  66. void iic_stop()
  67. {  
  68. IIC_SCL=0;
  69. _nop_();
  70. _nop_();
  71. IIC_SDA=0;
  72. _nop_();
  73. _nop_();
  74. IIC_SCL=1;
  75. _nop_();
  76. _nop_();
  77. IIC
复制代码









作者: yzwzfyz    时间: 2019-6-5 08:38
1、接口定义部分:要重新按新的联接方式定义
2、软件程序部分:要按arm格式重做编译,编译不通过的部分作出修改,使之符合arm要求。
作者: fanaijun    时间: 2019-6-5 18:59
没有直接转化的工具,得需要自己去移植
作者: 74寂寞追风86    时间: 2019-6-6 08:28
这个只能是移植了,二楼解释的很准确了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1