標(biāo)題:
STM32F103電子秤程序 稱重邏輯
[打印本頁]
作者:
曹義朋
時(shí)間:
2020-4-16 17:16
標(biāo)題:
STM32F103電子秤程序 稱重邏輯
實(shí)時(shí)重量計(jì)算,附帶可分部拿走部分的重量,OLED顯示 同時(shí)可通過串口上位機(jī)顯示拿去部分的重量
51hei.png
(662.29 KB, 下載次數(shù): 40)
下載附件
2020-4-19 15:24 上傳
單片機(jī)源程序如下:
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
#include "adc.h"
#include "pwm.h"
#include "key.h"
#include "pwm.h"
#include "HX711.h"
#include "usart.h"
int main(void)
{
char current[]={"current:"};
char take[]={"t a k e:"};
char carry[]={"current:"};
u8 i=0 ;
SystemInit(); /*系統(tǒng)時(shí)鐘初始化*/
delay_init(); /*延時(shí)函數(shù)初始化*/
OLED_Init(); /*OLED初始化*/
OLED_Clear(); /*OLED清屏*/
Init_HX711pin();
USART1_Config();
delay_ms(100);
key_init();
OLED_ShowString(0,2,current,16);
OLED_ShowString(0,4,take,16);
Get_Weight();
offset=Weight_Shiwu;
while(1)
{
Get_Weight();
tot=Weight_Shiwu-offset;
if(tot<=0)tot=0;
OLED_ShowNum(80,2,tot,6,16);
if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10) == 0)
{
delay_ms(500);
if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10) == 0)
{
i++;
}
}
if(i==1)
{
tot_old=tot;
i=2;
err=0;
OLED_ShowChar(75,4,'*',16);
OLED_ShowChar(65,4,' ',16);
OLED_ShowNum(80,4,err,6,16);
}
if(i==3)
{
err=tot_old-tot;
i=0;
if(err<=0)
{
err=-err;
}
OLED_ShowChar(75,4,'*',16);
OLED_ShowChar(65,4,'*',16);
OLED_ShowNum(80,4,err,6,16);
USART_SendData(USART1,err);
}
// USART_SendData(USART1,err);
}
}
復(fù)制代碼
所有資料51hei提供下載:
電子秤串口 oled 拿去重量.7z
(206.11 KB, 下載次數(shù): 87)
2020-4-19 15:16 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
kkklljkbb
時(shí)間:
2021-3-5 08:42
怎么接線呢
作者:
yuzhentao
時(shí)間:
2021-3-19 13:02
kkklljkbb 發(fā)表于 2021-3-5 08:42
怎么接線呢
同問
作者:
karolyte
時(shí)間:
2021-3-25 15:53
你用的傳感器量程是多大的?我目前做了一款使用51做的,輸出用的是LCD1602,感覺不夠用,想輸出用OLED屏試試
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1