找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

stm8 stm8s單片機(jī)浮點(diǎn)數(shù)轉(zhuǎn)四字節(jié)串口輸出方案源程序(親測(cè)可用)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:610433 發(fā)表于 2019-10-9 10:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
注釋掉的為轉(zhuǎn)四字節(jié)方案
未注釋掉的為直觀顯示數(shù)據(jù)方案

/******************************************************
定時(shí)器1中斷1ms
******************************************************/
INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
//  uint16_t i, j;
//
//  TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
//  
//  
//  GPIO_WriteHigh(GPIOD, GPIO_PIN_3);
//  while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
//  UART3_SendData8(1);
//  
//  for(i = 0; i < 60000; i++);
//  
//  GPIO_WriteLow(GPIOD, GPIO_PIN_3);
  static u16 time = 0;
  float root = 0;

//  u8 * p;
//  u8 ftc1, ftc2, ftc3, ftc4;
//  u8 high3, low3;
  TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
  UartReadMonitor(1);



  if(time == 100)
  {
    GPIO_WriteHigh(GPIOD, GPIO_PIN_3);

    root = SF6Root(273,0.5);

    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
    UART3_SendData8((u8)((unsigned int)(root/100)%10)+48);
    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
    UART3_SendData8((u8)((unsigned int)(root/10)%10)+48);
    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
    UART3_SendData8((u8)((unsigned int)(root/1)%10)+48);
    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
    UART3_SendData8('.');  
    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
    UART3_SendData8((u8)((unsigned int)(root*10)%10)+48);
    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
    UART3_SendData8((u8)((unsigned int)(root*100)%10)+48);
    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
    UART3_SendData8((u8)((unsigned int)(root*1000)%10)+48);


//    p = (u8 *)(&root);
//   
//    high3 = (u8)root;
//    low3 = (u8)((root - high3)*100);
//   
//    ftc1 = *p++;
//    ftc2 = *p++;
//    ftc3 = *p++;
//    ftc4 = *p;
//    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
//    UART3_SendData8(high3);
//    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
//    UART3_SendData8(low3);
//    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
//    UART3_SendData8(ftc4);
//    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
//    UART3_SendData8(ftc3);
//    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
//    UART3_SendData8(ftc2);
//    while(( UART3_GetFlagStatus(UART3_FLAG_TXE)==RESET));
//    UART3_SendData8(ftc1);
    time = 0;
  }
  time++;

}

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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