2025-06-27 09:04:04 +00:00
|
|
|
|
#ifndef __AS5047D_H_
|
|
|
|
|
#define __AS5047D_H_
|
|
|
|
|
#include "gd32f4xx.h"
|
|
|
|
|
|
2025-07-28 06:01:57 +00:00
|
|
|
|
#define TMR3109 1
|
|
|
|
|
|
|
|
|
|
#if !(AS5047) && !(TMR3109)
|
|
|
|
|
#define AS5047
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef AS5047
|
2025-06-27 09:04:04 +00:00
|
|
|
|
///ˮƽAS5047D<37>˿<EFBFBD>
|
|
|
|
|
///CSn
|
|
|
|
|
///<2F><>AS5047D_HORI<52><49>CSn<53><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_HORI_CSN_DISABLE (gpio_bit_set(GPIOA,GPIO_PIN_15))
|
|
|
|
|
///<2F><>AS5047D_HORI<52><49>CSn<53><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_HORI_CSN_ENABLE (gpio_bit_reset(GPIOA,GPIO_PIN_15))
|
|
|
|
|
|
|
|
|
|
///CLK
|
|
|
|
|
///<2F><>AS5047D_HORI<52><49>CLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_HORI_CLK_HIGH (gpio_bit_set(GPIOC,GPIO_PIN_10))
|
|
|
|
|
///<2F><>AS5047D_HORI<52><49>CLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_HORI_CLK_LOW (gpio_bit_reset(GPIOC,GPIO_PIN_10))
|
|
|
|
|
|
|
|
|
|
///MISO
|
|
|
|
|
///AS5047D_HORI<52><49>MISO<53><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵĵ<C5B5>ƽֵ
|
|
|
|
|
#define AS5047D_HORI_MISO_READ (gpio_input_bit_get(GPIOC,GPIO_PIN_11))
|
|
|
|
|
|
|
|
|
|
///MOSI
|
|
|
|
|
///<2F><>AS5047D_HORI<52><49>MOSI<53><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_HORI_MOSI_HIGH (gpio_bit_set(GPIOC,GPIO_PIN_12))
|
|
|
|
|
///<2F><>AS5047D_HORI<52><49>MOSI<53><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_HORI_MOSI_LOW (gpio_bit_reset(GPIOC,GPIO_PIN_12))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///<2F><>ֱAS5047D<37>˿<EFBFBD>
|
|
|
|
|
///<2F><>ֱAS5047D_VERTоƬ<D0BE><C6AC><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD>
|
|
|
|
|
///CSn
|
|
|
|
|
///<2F><>AS5047D_VERT<52><54>CSn<53><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_VERT_CSN_DISABLE (gpio_bit_set(GPIOD,GPIO_PIN_0))
|
|
|
|
|
///<2F><>AS5047D_VERT<52><54>CSn<53><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_VERT_CSN_ENABLE (gpio_bit_reset(GPIOD,GPIO_PIN_0))
|
|
|
|
|
|
|
|
|
|
///CLK
|
|
|
|
|
///<2F><>AS5047D_VERT<52><54>CLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_VERT_CLK_HIGH (gpio_bit_set(GPIOD,GPIO_PIN_1))
|
|
|
|
|
///<2F><>AS5047D_VERT<52><54>CLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_VERT_CLK_LOW (gpio_bit_reset(GPIOD,GPIO_PIN_1))
|
|
|
|
|
|
|
|
|
|
///MISO
|
|
|
|
|
///<2F><>ȡ<EFBFBD><C8A1>AS5047D_VERT<52><54>MISO<53><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵĵ<C5B5>ƽֵ
|
|
|
|
|
#define AS5047D_VERT_MISO_READ (gpio_input_bit_get(GPIOD,GPIO_PIN_2))
|
|
|
|
|
|
|
|
|
|
///MOSI
|
|
|
|
|
///<2F><>AS5047D_VERT<52><54>MOSI<53><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_VERT_MOSI_HIGH (gpio_bit_set(GPIOD,GPIO_PIN_3))
|
|
|
|
|
///<2F><>AS5047D_VERT<52><54>MOSI<53><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define AS5047D_VERT_MOSI_LOW (gpio_bit_reset(GPIOD,GPIO_PIN_3))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///AS5047D<37>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
|
|
|
|
///NOP
|
|
|
|
|
#define AS5047D_NOP 0x0000
|
|
|
|
|
///Clear Error Flag
|
|
|
|
|
#define AS5047D_CEF 0X0001
|
|
|
|
|
///Programming Control
|
|
|
|
|
#define AS5047D_PC 0X0003
|
|
|
|
|
///OTP Register Zero Position Hi
|
|
|
|
|
#define AS5047D_ORZPH 0X0016
|
|
|
|
|
///OTP Register Zero Position Low 6 LSBs
|
|
|
|
|
#define AS5047D_ORZPL 0X0017
|
|
|
|
|
///Diagnostics + Automatic Gain Control (AGC)
|
|
|
|
|
#define AS5047D_D_AGC 0X3FFD
|
|
|
|
|
///Magnitude
|
|
|
|
|
#define AS5047D_M 0X3FFE
|
|
|
|
|
///Angle
|
|
|
|
|
#define AS5047D_ANGLE 0X3FFF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CLEAR ERROR FLAG 0100 0000 0000 0001
|
|
|
|
|
#define AS5047D_CLEAR_ERROR_FLAG 0X4001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///AS5047D<37>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
///<2F><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|
|
|
|
#define AS5047D_READ_COMMAND 0X4000
|
|
|
|
|
///д<>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|
|
|
|
#define AS5047D_WRITE_COMMAND 0XBFFF
|
|
|
|
|
///д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define AS5047D_WRITE_DATA 0X0001
|
|
|
|
|
///<2F>жϽ<D0B6><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define AS5047D_JUDGE_RECEIVE_DATA 0X4000 // 0100 0000 0000 0000
|
|
|
|
|
///<2F>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|
|
|
|
#define AS5047D_READ_NUM 3
|
|
|
|
|
///<2F>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|
|
|
|
#define AS5047D_WRITE_NUM 3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define AS5047D_DIR_FWD 1 //<2F>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
|
|
|
|
#define AS5047D_DIR_REV 0 //<2F>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
|
|
|
|
|
|
|
|
|
///<2F><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>жϽ<D0B6><CFBD><EFBFBD>
|
|
|
|
|
///
|
|
|
|
|
///<2F><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>жϽ<D0B6><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>ԭ<EFBFBD><D4AD>
|
|
|
|
|
///_master<65><72>ʾas5047d<37>Խ<EFBFBD><D4BD>յ<EFBFBD><D5B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>жϵĽ<CFB5><C4BD><EFBFBD><EFBFBD><EFBFBD>_slave<76><65>ʾK60<36><30>as5047d<37><64><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0>жϽ<D0B6><CFBD><EFBFBD>
|
|
|
|
|
typedef struct _As5047DJudgeReceivePackage_
|
|
|
|
|
{
|
|
|
|
|
///<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|
|
|
|
unsigned int package;
|
|
|
|
|
|
|
|
|
|
///k60<36><30>AS5047D<37>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
///<2F>жϽ<D0B6><CFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݰ<EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ,1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char parity_error_package;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///AS5047D<37>Խ<EFBFBD><D4BD>յ<EFBFBD><D5B5><EFBFBD>K60ָ<30><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>,ָ<><D6B8><EFBFBD>д<EFBFBD>ʱ<EFBFBD>Ļظ<C4BB><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD>Error flag<61><67>EF<45><46>λ<EFBFBD><CEBB>
|
|
|
|
|
unsigned char error_flag_command;
|
|
|
|
|
///У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char parity_error_command;
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char command_invalid_command;
|
|
|
|
|
///֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char framing_error_command;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD><C9B9><EFBFBD>0<EFBFBD><30><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>1<EFBFBD>ɹ<EFBFBD>.<2E><><EFBFBD>ж<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>
|
|
|
|
|
unsigned char Operation_Result;
|
|
|
|
|
|
|
|
|
|
}As5047DJudgeReceivePackage;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
void as5047d_init();
|
|
|
|
|
As5047DJudgeReceivePackage as5047d_hori_judge_receive_package(unsigned int package);
|
|
|
|
|
As5047DJudgeReceivePackage as5047d_vert_judge_receive_package(unsigned int package);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned int as5047d_command_type(unsigned int package, unsigned int type);
|
|
|
|
|
|
|
|
|
|
unsigned int as5047d_hori_receive_package();
|
|
|
|
|
unsigned int as5047d_hori_read_command(unsigned int add);
|
|
|
|
|
unsigned int as5047d_hori_send_package(unsigned int package);
|
|
|
|
|
unsigned int as5047d_hori_write_command(unsigned int add);
|
|
|
|
|
unsigned int as5047d_hori_nop_command();
|
|
|
|
|
As5047DJudgeReceivePackage as5047d_hori_write_data(unsigned int add,unsigned int data);
|
|
|
|
|
unsigned int as5047d_hori_read_data(unsigned int add);
|
|
|
|
|
float as5047d_hori_get_angle();
|
|
|
|
|
unsigned int as5047d_hori_cef_command();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned int as5047d_vert_receive_package();
|
|
|
|
|
unsigned int as5047d_vert_read_command(unsigned int add);
|
|
|
|
|
unsigned int as5047d_vert_send_package(unsigned int package);
|
|
|
|
|
unsigned int as5047d_vert_write_command(unsigned int add);
|
|
|
|
|
unsigned int as5047d_vert_nop_command();
|
|
|
|
|
As5047DJudgeReceivePackage as5047d_vert_write_data(unsigned int add,unsigned int data);
|
|
|
|
|
unsigned int as5047d_vert_read_data(unsigned int add);
|
|
|
|
|
float as5047d_vert_get_angle();
|
|
|
|
|
unsigned int as5047d_vert_cef_command();
|
|
|
|
|
float as5047d_hori_get_angle_a();
|
|
|
|
|
float as5047d_vert_get_angle_a();
|
|
|
|
|
unsigned int as5047d_vert_read_data_a();
|
|
|
|
|
unsigned int as5047d_hori_read_data_a();
|
|
|
|
|
|
2025-07-28 06:01:57 +00:00
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef TMR3109
|
|
|
|
|
|
|
|
|
|
#define AS5047D_DIR_FWD 1 //<2F>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
|
|
|
|
#define AS5047D_DIR_REV 0 //<2F>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
|
|
|
|
|
|
|
|
|
///<2F><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>жϽ<D0B6><CFBD><EFBFBD>
|
|
|
|
|
///
|
|
|
|
|
///<2F><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>жϽ<D0B6><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>ԭ<EFBFBD><D4AD>
|
|
|
|
|
///_master<65><72>ʾas5047d<37>Խ<EFBFBD><D4BD>յ<EFBFBD><D5B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>жϵĽ<CFB5><C4BD><EFBFBD><EFBFBD><EFBFBD>_slave<76><65>ʾK60<36><30>as5047d<37><64><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0>жϽ<D0B6><CFBD><EFBFBD>
|
|
|
|
|
typedef struct _As5047DJudgeReceivePackage_
|
|
|
|
|
{
|
|
|
|
|
///<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|
|
|
|
unsigned int package;
|
|
|
|
|
|
|
|
|
|
///k60<36><30>AS5047D<37>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
///<2F>жϽ<D0B6><CFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݰ<EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ,1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char parity_error_package;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///AS5047D<37>Խ<EFBFBD><D4BD>յ<EFBFBD><D5B5><EFBFBD>K60ָ<30><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>,ָ<><D6B8><EFBFBD>д<EFBFBD>ʱ<EFBFBD>Ļظ<C4BB><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD>Error flag<61><67>EF<45><46>λ<EFBFBD><CEBB>
|
|
|
|
|
unsigned char error_flag_command;
|
|
|
|
|
///У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char parity_error_command;
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char command_invalid_command;
|
|
|
|
|
///֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char framing_error_command;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD><C9B9><EFBFBD>0<EFBFBD><30><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>1<EFBFBD>ɹ<EFBFBD>.<2E><><EFBFBD>ж<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>
|
|
|
|
|
unsigned char Operation_Result;
|
|
|
|
|
|
|
|
|
|
}As5047DJudgeReceivePackage;
|
|
|
|
|
|
|
|
|
|
///ˮƽTMR3109<30>˿<EFBFBD>
|
|
|
|
|
///CSn
|
|
|
|
|
///<2F><>TMR3109_HORI<52><49>CSn<53><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_HORI_CSN_DISABLE (gpio_bit_set(GPIOA,GPIO_PIN_15))
|
|
|
|
|
///<2F><>TMR3109_HORI<52><49>CSn<53><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_HORI_CSN_ENABLE (gpio_bit_reset(GPIOA,GPIO_PIN_15))
|
|
|
|
|
|
|
|
|
|
///CLK
|
|
|
|
|
///<2F><>TMR3109_HORI<52><49>CLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_HORI_CLK_HIGH (gpio_bit_set(GPIOC,GPIO_PIN_10))
|
|
|
|
|
///<2F><>TMR3109_HORI<52><49>CLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_HORI_CLK_LOW (gpio_bit_reset(GPIOC,GPIO_PIN_10))
|
|
|
|
|
|
|
|
|
|
///MISO
|
|
|
|
|
///TMR3109_HORI<52><49>MISO<53><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵĵ<C5B5>ƽֵ
|
|
|
|
|
#define TMR3109_HORI_MISO_READ (gpio_input_bit_get(GPIOC,GPIO_PIN_11))
|
|
|
|
|
|
|
|
|
|
///MOSI
|
|
|
|
|
///<2F><>TMR3109_HORI<52><49>MOSI<53><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_HORI_MOSI_HIGH (gpio_bit_set(GPIOC,GPIO_PIN_12))
|
|
|
|
|
///<2F><>TMR3109_HORI<52><49>MOSI<53><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_HORI_MOSI_LOW (gpio_bit_reset(GPIOC,GPIO_PIN_12))
|
|
|
|
|
|
|
|
|
|
///<2F><>ֱTMR3109<30>˿<EFBFBD>
|
|
|
|
|
///<2F><>ֱTMR3109_VERTоƬ<D0BE><C6AC><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD>
|
|
|
|
|
///CSn
|
|
|
|
|
///<2F><>TMR3109_VERT<52><54>CSn<53><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_VERT_CSN_DISABLE (gpio_bit_set(GPIOD,GPIO_PIN_0))
|
|
|
|
|
///<2F><>TMR3109_VERT<52><54>CSn<53><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_VERT_CSN_ENABLE (gpio_bit_reset(GPIOD,GPIO_PIN_0))
|
|
|
|
|
|
|
|
|
|
///CLK
|
|
|
|
|
///<2F><>TMR3109_VERT<52><54>CLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_VERT_CLK_HIGH (gpio_bit_set(GPIOD,GPIO_PIN_1))
|
|
|
|
|
///<2F><>TMR3109_VERT<52><54>CLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_VERT_CLK_LOW (gpio_bit_reset(GPIOD,GPIO_PIN_1))
|
|
|
|
|
|
|
|
|
|
///MISO
|
|
|
|
|
///<2F><>ȡ<EFBFBD><C8A1>TMR3109_VERT<52><54>MISO<53><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵĵ<C5B5>ƽֵ
|
|
|
|
|
#define TMR3109_VERT_MISO_READ (gpio_input_bit_get(GPIOD,GPIO_PIN_2))
|
|
|
|
|
|
|
|
|
|
///MOSI
|
|
|
|
|
///<2F><>TMR3109_VERT<52><54>MOSI<53><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_VERT_MOSI_HIGH (gpio_bit_set(GPIOD,GPIO_PIN_3))
|
|
|
|
|
///<2F><>TMR3109_VERT<52><54>MOSI<53><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>͵<EFBFBD>ƽ
|
|
|
|
|
#define TMR3109_VERT_MOSI_LOW (gpio_bit_reset(GPIOD,GPIO_PIN_3))
|
|
|
|
|
|
|
|
|
|
/* Op_code<64><65>Ӧ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
//дEEPROM<4F><4D><EFBFBD><EFBFBD>
|
|
|
|
|
#define Write_ee 0b001
|
|
|
|
|
//д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define Write_register 0b101
|
|
|
|
|
//<2F><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define Read_register 0b110
|
|
|
|
|
//ģʽ<C4A3>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define Change_mode 0b111
|
|
|
|
|
//<2F><><EFBFBD>Ƕ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|
|
|
|
#define Read_angle 0b011
|
|
|
|
|
|
|
|
|
|
void as5047d_init();
|
|
|
|
|
float as5047d_hori_get_angle_a();
|
|
|
|
|
float as5047d_vert_get_angle_a();
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-06-27 09:04:04 +00:00
|
|
|
|
#endif
|