多个重量程序

STM32地址偏移
https://blog.csdn.net/Britripe/article/details/83792909
我的例子是要控制8个重量。
将地址存入偏移量为0x8020000起始的地方
#ifndef BALANCE_H
#define BALANCE_H
#include “stm32f10x.h”
#include “stm32f10x_gpio.h”

//Ô­±¾µÄÍ·ÎļþÄÚÈÝ¡£
#include “pbdata.h”
#ifdef __cplusplus
extern “C” {
#endif
#define __IO volatile
//0x8020100ÔÚFLASHÇøÄÚ£¬Ô¶³¬³ö³ÌÐò¶ÎÓÃÀ´±£´æ²ÎÊý
#define BALANCE1_ADDR ((uint32_t)0x8020100) //³Æ1±£´æµØÖ·
#define BALANCE2_ADDR ((uint32_t)0x8020200) //³Æ1±£´æµØÖ·
#define BALANCE3_ADDR ((uint32_t)0x8020300) //³Æ1±£´æµØÖ·
#define BALANCE4_ADDR ((uint32_t)0x8020400) //³Æ1±£´æµØÖ·
#define BALANCE5_ADDR ((uint32_t)0x8020500) //³Æ1±£´æµØÖ·
#define BALANCE6_ADDR ((uint32_t)0x8020600) //³Æ1±£´æµØÖ·
#define BALANCE7_ADDR ((uint32_t)0x8020700) //³Æ1±£´æµØÖ·
#define BALANCE8_ADDR ((uint32_t)0x8020800) //³Æ1±£´æµØÖ·
typedef struct
{
__IO float setting_weight; //Óû§ÉèÖÃÄ¿±êÖØÁ¿
__IO float sensitivity; //ÁéÃô¶È
__IO float scale; //Á¿³Ì
__IO u32 filter_times; //¹ýÂË´ÎÊý
__IO float correct_factor; //ÐÞÕýÒòËØ
__IO float hugebias; //´óÆ«²î
__IO float middlebias; //ÖÐÆ«²î

__IO float littlebias;			//Сƫ²î

}struct_balance;
#define BALANCE1 ((struct_balance*)BALANCE1_ADDR)
#define BALANCE2 ((struct_balance*)BALANCE2_ADDR)
#define BALANCE3 ((struct_balance*)BALANCE3_ADDR)
#define BALANCE4 ((struct_balance*)BALANCE4_ADDR)
#define BALANCE5 ((struct_balance*)BALANCE5_ADDR)
#define BALANCE6 ((struct_balance*)BALANCE6_ADDR)
#define BALANCE7 ((struct_balance*)BALANCE7_ADDR)
#define BALANCE8 ((struct_balance*)BALANCE8_ADDR)
class balanceclass{
private:
float value;//ʵ¼ÊÖØÁ¿
float settingvalue;//ÉèÖÃÖØÁ¿
float hugeoffset;//´óÖØÁ¿Æ«²î
float middleoffset;
float smalloffset;
float sensitivity;//ÁéÃô¶È
float scale;//Á¿³Ì
u32 filter_number;//Â˲¨´ÎÊý
float correction_factor;//ÐÞÕýϵÊý

public:
	balanceclass(float scale,u32 filter_times,float correct_fator,float hugebias,float middlebias,float smallbias );

	void set_settingvalue(float weight);
	float get_settingvalue();
	void set_hugeoffset(float bias);
	float get_hugeoffset();
	void set_middleoffset(float bias);
	float get_middleoffset();
	void set_smalloffset(float bias);
	float get_smalloffset();
	void set_sensitivity(float weight);
	float get_sensitivity();
	void set_scale(float scale);
	float get_scale();
	void set_filter_number(u32 times);
	u32 get_filter_number();
	void set_correction_factor(float factor);
	float get_correction_factor();

};

#ifdef __cplusplus
}
#endif
#endif

猜你喜欢

转载自blog.csdn.net/tel_1392/article/details/106862207