標(biāo)題: 51單片機(jī)代碼如何轉(zhuǎn)換成arm代碼? [打印本頁]

作者: fywcy    時間: 2019-6-3 21:53
標(biāo)題: 51單片機(jī)代碼如何轉(zhuǎn)換成arm代碼?
我用的是德飛萊 七星蟲系列的stm32f103主板,型號:尼莫M3S,想要連接心率傳感器,但是這款傳感器自帶的調(diào)試程序是51單片機(jī)的,想改成arm的程序。自帶程序中用51模擬了IIC接口,stm32主板自帶IIC接口,我現(xiàn)在要把原51代碼轉(zhuǎn)換成arm代碼,望各位指教!

單片機(jī)源程序如下:
  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. //函數(shù):    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. //函數(shù):    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. //函數(shù):    void iic_stop();
  61. //功能:    I2C總線結(jié)束
  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
復(fù)制代碼









作者: yzwzfyz    時間: 2019-6-5 08:38
1、接口定義部分:要重新按新的聯(lián)接方式定義
2、軟件程序部分:要按arm格式重做編譯,編譯不通過的部分作出修改,使之符合arm要求。
作者: fanaijun    時間: 2019-6-5 18:59
沒有直接轉(zhuǎn)化的工具,得需要自己去移植
作者: 74寂寞追風(fēng)86    時間: 2019-6-6 08:28
這個只能是移植了,二樓解釋的很準(zhǔn)確了。




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