[资料分享] FDC2214的STM32和MSP430F5529串口读取数据程序

Aguilera   2020-2-14 20:25 楼主

msp430单片机源程序如下:

  1. #include "bsp.h"
  2. int main( void )
  3. {
  4.     float cap,capfirst,capfirst1;
  5.     unsigned int Data_FDC; 
  6.   // Stop watchdog timer to prevent time out reset
  7.   WDTCTL = WDTPW + WDTHOLD;
  8.   delay_ms(500);
  9.   bsp_Init();
  10.   _EINT();
  11.   delay_ms(500);
  12.   Data_FDC = ReadRegfdc2214(0x00);//读取第一通道的值
  13.   cap = 232021045.248/(Data_FDC);
  14.   capfirst = cap*cap;
  15.   delay_ms(500);
  16.   Data_FDC = ReadRegfdc2214(0x02);//读取第一通道的值
  17.   cap = 232021045.248/(Data_FDC);
  18.   capfirst1 = cap*cap;
  19.   delay_ms(500);
  20.   while(1)
  21.   {
  22.     Data_FDC = ReadRegfdc2214(0x00);//读取第一通道的值
  23.     cap = 232021045.248/(Data_FDC);
  24.     cap = capfirst -cap*cap;
  25.     printf("DataTEMP0:\n");
  26.     printf("%d\n",cap);
  27.     delay_ms(200);
  28.     Data_FDC = ReadRegfdc2214(0x02);//读取第一通道的值
  29.     cap = 232021045.248/(Data_FDC);
  30.     cap = capfirst1 -cap*cap;
  31.     printf("DataTEMP1:\n");
  32.     printf("%d\n",cap);
  33.     delay_ms(200);
  34.   }
  35. }

stm32单片机源程序如下:

  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "timer.h"
  5. #include "led.h"
  6. #include "oled.h"
  7. #include "fdc2214.h"
  8. #include "McuDataSend.h"
  9.  
  10. void Sys_Init(void);
  11.  
  12. float res0,res1,res2,res3;
  13. float temp0,temp1,temp2,temp3;
  14. int main(void)
  15. {
  16.   Sys_Init();
  17.         while(1)
  18.         {
  19. //                Oled_Printf_Float(0,1,res0-temp0,0);
  20. //                Oled_Printf_Float(0,3,res1-temp1,0);
  21. //                Oled_Printf_Float(0,5,res2-temp2,0);
  22. //                Oled_Printf_Float(0,7,res3-temp3,0);
  23.                 
  24.         }
  25. }
  26.  
  27. void Sys_Init(void)
  28. {
  29.         delay_init();                     //延时函数初始化          
  30.         NVIC_Configuration();//设置NVIC中断分组2:2;2位抢占优先级,2位响应优先级
  31.         uart_init(115200);         //串口初始化为115200
  32.         LED_Init();
  33. //        OLED_Init();
  34.         while(FDC2214_Init());
  35.         led=0;
  36.         delay_ms(100);
  37.         temp0 = Cap_Calculate(0);//读取初始值
  38.         temp1 = Cap_Calculate(1);
  39. //        temp2 = Cap_Calculate(2);
  40. //        temp3 = Cap_Calculate(3);
  41.         TIM3_Ctrl_Init(10000-1,7200-1);
  42. }
  43.  
  44. //定时器5中断服务程序
  45. void TIM3_IRQHandler(void)   //TIM5中断
  46. {
  47.         if(TIM3->SR&0X0001)//500ms定时中断
  48. {
  49.         res0 = Cap_Calculate(0);//采集数据
  50.         res1 = Cap_Calculate(1);
  51. //        res2 = Cap_Calculate(2);
  52. //        res3 = Cap_Calculate(3);
  53. //        Data_Send_Status(res,0,0);
  54. //        printf("%5d : %5d : %5d\r\n",res0,res1,res2);
  55.          led=~led;
  56.          printf("CH0;%3.3f CH1;%3.3f \r\n",res0-temp0,res1-temp1);
  57.                 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
  58. }
  59. TIM3->SR&=~(1<<0);  //中断标志位清0,等待下一次中断
  60. }

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复