用STM32F103C8T6测试MT6835模块

硬件连接

我是用单片机连接模块的SPI接口,单片机上用的硬件SPI1,引脚是: PA4 (CSN),PA5 (SCK), PA6 (MISO),PA7 (MOSI)。
软件模板

为了方便直接用的是正点原子的基础模板。
模块代码文件

mt6835.h
mt6835.c
主文件main.c

#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "mt6835.h"
#include "spi.h"
// 函数声明
void SPI_Loopback_Test(void);
/*******************************************************************************
* 函数名: main
*******************************************************************************/
int main(void)
{
MT6835_AngleData_t test;
float angle_deg;
uart_init(115200); //串口初始化
delay_init(); //延时初始化
SPI1_Configuration(); //SPI 初始化
printf("MT6835 Init Start...\r\n");
// 调用 MT6835 初始化检查
MT6835_InitStatus_t init_status = MT6835_Init();
if (init_status != MT6835_INIT_OK) {
printf("[MT6835] Init failed with code %d, please check hardware.\n", init_status);
// 可以根据错误码决定是否继续运行
}
while (1)
{
// 读取原始21位角度数据
test = MT6835_ReadAngle();
// 转换为角度:0 ~ 2^21 - 1 对应 0 ~ 360度
angle_deg = (float)test.angle_raw * 360.0f / 2097152.0f;
printf("Raw: %lu Angle: %.2f deg\r\n", test.angle_raw, angle_deg);
delay_ms(100);
}
}
SPI文件

spi.h
spi.c
测试
测试结果:它回掉电保存0点位置,从0到360很精准,分辨率不错。下面附件是整个工程文件。
[15:24:06.669]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:06.763]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:06.871]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:06.979]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:07.089]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:07.199]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:07.308]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:07.401]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:07.510]接收←buf[0]=0xFF, buf[1]=0xFE, buf[2]=0xD0
Raw: 2097114 Angle: 359.99 deg
[15:24:07.618]接收←buf[0]=0xFF, buf[1]=0xFF, buf[2]=0x28
Raw: 2097125 Angle: 360.00 deg
[15:24:07.727]接收←buf[0]=0xFF, buf[1]=0xFF, buf[2]=0x38
Raw: 2097127 Angle: 360.00 deg
[15:24:07.836]接收←buf[0]=0xFF, buf[1]=0xFF, buf[2]=0x38
Raw: 2097127 Angle: 360.00 deg
[15:24:07.945]接收←buf[0]=0xFF, buf[1]=0xF4, buf[2]=0xF0
Raw: 2096798 Angle: 359.94 deg
[15:24:08.054]接收←buf[0]=0xFF, buf[1]=0xF8, buf[2]=0x78
Raw: 2096911 Angle: 359.96 deg
[15:24:08.163]接收←buf[0]=0xFF, buf[1]=0xF8, buf[2]=0x30
Raw: 2096902 Angle: 359.96 deg
[15:24:08.256]接收←buf[0]=0x00, buf[1]=0x04, buf[2]=0xD0
Raw: 154 Angle: 0.03 deg
[15:24:08.365]接收←buf[0]=0x00, buf[1]=0x99, buf[2]=0xA8
Raw: 4917 Angle: 0.84 deg
[15:24:08.474]接收←buf[0]=0x01, buf[1]=0x85, buf[2]=0x40
Raw: 12456 Angle: 2.14 deg
[15:24:08.582]接收←buf[0]=0x02, buf[1]=0xBD, buf[2]=0xC0
Raw: 22456 Angle: 3.85 deg
[15:24:08.691]接收←buf[0]=0x04, buf[1]=0x7D, buf[2]=0xE0
Raw: 36796 Angle: 6.32 deg
[15:24:08.800]接收←buf[0]=0x06, buf[1]=0xE0, buf[2]=0xD0
Raw: 56346 Angle: 9.67 deg
[15:24:08.893]接收←buf[0]=0x09, buf[1]=0x75, buf[2]=0x18
Raw: 77475 Angle: 13.30 deg
[15:24:09.001]接收←buf[0]=0x0C, buf[1]=0x2A, buf[2]=0x08
Raw: 99649 Angle: 17.11 deg
[15:24:09.109]接收←buf[0]=0x0F, buf[1]=0x54, buf[2]=0x30
Raw: 125574 Angle: 21.56 deg
[15:24:09.219]接收←buf[0]=0x13, buf[1]=0x4E, buf[2]=0x40
Raw: 158152 Angle: 27.15 deg
[15:24:09.327]接收←buf[0]=0x17, buf[1]=0x2C, buf[2]=0x30
Raw: 189830 Angle: 32.59 deg
[15:24:09.435]接收←buf[0]=0x1A, buf[1]=0xD5, buf[2]=0xF8
Raw: 219839 Angle: 37.74 deg
[15:24:09.542]接收←buf[0]=0x1D, buf[1]=0x19, buf[2]=0x98
Raw: 238387 Angle: 40.92 deg
[15:24:09.650]接收←buf[0]=0x1F, buf[1]=0xE2, buf[2]=0x08
Raw: 261185 Angle: 44.84 deg
[15:24:09.758]接收←buf[0]=0x24, buf[1]=0x81, buf[2]=0xF0
Raw: 299070 Angle: 51.34 deg
[15:24:09.866]接收←buf[0]=0x26, buf[1]=0xA7, buf[2]=0x68
Raw: 316653 Angle: 54.36 deg
[15:24:09.961]接收←buf[0]=0x28, buf[1]=0x86, buf[2]=0x50
Raw: 331978 Angle: 56.99 deg
[15:24:10.070]接收←buf[0]=0x29, buf[1]=0xEF, buf[2]=0xA0
Raw: 343540 Angle: 58.97 deg
[15:24:10.178]接收←buf[0]=0x2A, buf[1]=0x28, buf[2]=0xA0
Raw: 345364 Angle: 59.29 deg
[15:24:10.288]接收←buf[0]=0x2A, buf[1]=0xEF, buf[2]=0x68
Raw: 351725 Angle: 60.38 deg
[15:24:10.395]接收←buf[0]=0x2A, buf[1]=0xFD, buf[2]=0x08
Raw: 352161 Angle: 60.45 deg
[15:24:10.504]接收←buf[0]=0x2C, buf[1]=0x88, buf[2]=0xF8
Raw: 364831 Angle: 62.63 deg
[15:24:10.598]接收←buf[0]=0x2F, buf[1]=0xDB, buf[2]=0x20
Raw: 392036 Angle: 67.30 deg
[15:24:10.708]接收←buf[0]=0x33, buf[1]=0xF2, buf[2]=0x80
Raw: 425552 Angle: 73.05 deg
[15:24:10.815]接收←buf[0]=0x38, buf[1]=0xFC, buf[2]=0xA0
Raw: 466836 Angle: 80.14 deg
[15:24:10.925]接收←buf[0]=0x3D, buf[1]=0xFB, buf[2]=0x58
Raw: 507755 Angle: 87.16 deg
[15:24:11.034]接收←buf[0]=0x41, buf[1]=0x9D, buf[2]=0x20
Raw: 537508 Angle: 92.27 deg
[15:24:11.141]接收←buf[0]=0x44, buf[1]=0xDA, buf[2]=0xD8
Raw: 564059 Angle: 96.83 deg
[15:24:11.251]接收←buf[0]=0x46, buf[1]=0x89, buf[2]=0x18
Raw: 577827 Angle: 99.19 deg
[15:24:11.343]接收←buf[0]=0x47, buf[1]=0x58, buf[2]=0x10
Raw: 584450 Angle: 100.33 deg
[15:24:11.450]接收←buf[0]=0x47, buf[1]=0x59, buf[2]=0x28
Raw: 584485 Angle: 100.33 deg
[15:24:11.558]接收←buf[0]=0x47, buf[1]=0x56, buf[2]=0xD0
Raw: 584410 Angle: 100.32 deg
[15:24:11.667]接收←buf[0]=0x47, buf[1]=0x57, buf[2]=0x28
Raw: 584421 Angle: 100.32 deg
[15:24:11.776]接收←buf[0]=0x47, buf[1]=0x80, buf[2]=0x58
Raw: 585739 Angle: 100.55 deg
[15:24:11.884]接收←buf[0]=0x4A, buf[1]=0x35, buf[2]=0x50
Raw: 607914 Angle: 104.36 deg
[15:24:11.992]接收←buf[0]=0x4F, buf[1]=0x5B, buf[2]=0xE8
Raw: 650109 Angle: 111.60 deg
[15:24:12.102]接收←buf[0]=0x54, buf[1]=0xE3, buf[2]=0x08
Raw: 695393 Angle: 119.37 deg
[15:24:12.197]接收←buf[0]=0x5B, buf[1]=0x9F, buf[2]=0x60
Raw: 750572 Angle: 128.84 deg
[15:24:12.306]接收←buf[0]=0x60, buf[1]=0x53, buf[2]=0xD8
Raw: 789115 Angle: 135.46 deg
[15:24:12.415]接收←buf[0]=0x66, buf[1]=0x7C, buf[2]=0x30
Raw: 839558 Angle: 144.12 deg
[15:24:12.523]接收←buf[0]=0x6F, buf[1]=0x7C, buf[2]=0x48
Raw: 913289 Angle: 156.78 deg
[15:24:12.631]接收←buf[0]=0x79, buf[1]=0x2F, buf[2]=0x20
Raw: 992740 Angle: 170.42 deg
[15:24:12.739]接收←buf[0]=0x82, buf[1]=0x45, buf[2]=0x58
Raw: 1067179 Angle: 183.19 deg
[15:24:12.848]接收←buf[0]=0x89, buf[1]=0xF2, buf[2]=0xD0
Raw: 1130074 Angle: 193.99 deg
[15:24:12.957]接收←buf[0]=0x91, buf[1]=0x18, buf[2]=0xA0
Raw: 1188628 Angle: 204.04 deg
[15:24:13.051]接收←buf[0]=0x97, buf[1]=0x98, buf[2]=0xC8
Raw: 1241881 Angle: 213.18 deg
[15:24:13.159]接收←buf[0]=0xA0, buf[1]=0xC0, buf[2]=0xC0
Raw: 1316888 Angle: 226.06 deg
[15:24:13.268]接收←buf[0]=0xA7, buf[1]=0xE7, buf[2]=0xC0
Raw: 1375480 Angle: 236.12 deg
[15:24:13.376]接收←buf[0]=0xAE, buf[1]=0x9E, buf[2]=0x08
Raw: 1430465 Angle: 245.56 deg
[15:24:13.485]接收←buf[0]=0xB6, buf[1]=0x5B, buf[2]=0x98
Raw: 1493875 Angle: 256.44 deg
[15:24:13.593]接收←buf[0]=0xBE, buf[1]=0x9F, buf[2]=0x10
Raw: 1561570 Angle: 268.06 deg
[15:24:13.702]接收←buf[0]=0xC6, buf[1]=0x3C, buf[2]=0x30
Raw: 1623942 Angle: 278.77 deg
[15:24:13.810]接收←buf[0]=0xCB, buf[1]=0xC6, buf[2]=0xD8
Raw: 1669339 Angle: 286.56 deg
[15:24:13.905]接收←buf[0]=0xD2, buf[1]=0xC3, buf[2]=0x90
Raw: 1726578 Angle: 296.39 deg
[15:24:14.015]接收←buf[0]=0xD9, buf[1]=0xA9, buf[2]=0x80
Raw: 1783088 Angle: 306.09 deg
[15:24:14.124]接收←buf[0]=0xDE, buf[1]=0x92, buf[2]=0x38
Raw: 1823303 Angle: 312.99 deg
[15:24:14.232]接收←buf[0]=0xE4, buf[1]=0x4F, buf[2]=0xC0
Raw: 1870328 Angle: 321.06 deg
[15:24:14.340]接收←buf[0]=0xE7, buf[1]=0xCF, buf[2]=0x70
Raw: 1898990 Angle: 325.98 deg
[15:24:14.448]接收←buf[0]=0xEB, buf[1]=0x9B, buf[2]=0x40
Raw: 1930088 Angle: 331.32 deg
[15:24:14.556]接收←buf[0]=0xF0, buf[1]=0xF0, buf[2]=0x68
Raw: 1973773 Angle: 338.82 deg
[15:24:14.665]接收←buf[0]=0xF7, buf[1]=0x33, buf[2]=0x38
Raw: 2025063 Angle: 347.63 deg
[15:24:14.757]接收←buf[0]=0xFC, buf[1]=0xA1, buf[2]=0x20
Raw: 2069540 Angle: 355.26 deg
[15:24:14.865]接收←buf[0]=0xFF, buf[1]=0x4F, buf[2]=0x28
Raw: 2091493 Angle: 359.03 deg
[15:24:14.976]接收←buf[0]=0xFF, buf[1]=0xAA, buf[2]=0x80
Raw: 2094416 Angle: 359.53 deg
[15:24:15.083]接收←buf[0]=0xFF, buf[1]=0xAA, buf[2]=0x40
Raw: 2094408 Angle: 359.53 deg
[15:24:15.191]接收←buf[0]=0xFF, buf[1]=0xAA, buf[2]=0x30
Raw: 2094406 Angle: 359.53 deg
[15:24:15.301]接收←buf[0]=0xFF, buf[1]=0xAA, buf[2]=0x30
Raw: 2094406 Angle: 359.53 deg
[15:24:15.409]接收←buf[0]=0xFF, buf[1]=0xAA, buf[2]=0x10
Raw: 2094402 Angle: 359.53 deg
[15:24:15.517]接收←buf[0]=0xFF, buf[1]=0xAA, buf[2]=0xC8
Raw: 2094425 Angle: 359.53 deg
[15:24:15.610]接收←buf[0]=0xFF, buf[1]=0xBC, buf[2]=0x28
Raw: 2094981 Angle: 359.63 deg
[15:24:15.719]接收←buf[0]=0xFF, buf[1]=0xF5, buf[2]=0x08
Raw: 2096801 Angle: 359.94 deg
[15:24:15.828]接收←buf[0]=0xFF, buf[1]=0xF5, buf[2]=0xB0
Raw: 2096822 Angle: 359.94 deg
[15:24:15.938]接收←buf[0]=0x00, buf[1]=0x47, buf[2]=0xB0
Raw: 2294 Angle: 0.39 deg
[15:24:16.045]接收←buf[0]=0x00, buf[1]=0x5B, buf[2]=0x90
Raw: 2930 Angle: 0.50 deg
[15:24:16.154]接收←buf[0]=0x00, buf[1]=0x5C, buf[2]=0x48
Raw: 2953 Angle: 0.51 deg
0
0
0
qq空间
微博
复制链接
分享
0