|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM8903 三相电机驱动程序。
1 b M% R+ Y- X5 t发现如果程序里有对PB端口读操作 STlink就好显示error显示如下:
+ P8 a* G) ?6 B/ U5 ?% |9 n6 Q
. L( x. L8 ~% {' ]
更准确的说是一旦PB端口PB7为1时读操作就会引发Error。: z; @- w0 ]0 H
PB端口5,6,7接Hall Sensor,电平为5V/0V电平无异常。当把电机转到100,101,110三个位置时,就会显示一时错误,无法进行仿真。
; w V3 F+ f3 j, L+ j8 Z$ }7 v/ u- x _其他状态目前没有发现问题,如果屏蔽这段程序则仿真正常。
. Z y2 L0 p0 `! W9 ?void Hall_GetStep(void)5 q$ r! m; \0 P; U+ ^7 H& S( d
{5 d$ t0 R ^3 [ H5 W9 i" _! D
u8 hallCode;8 q4 W) z5 |& j- |& S# f+ I) U
/ E' s; W/ V. X1 C0 @. K0 V. X
hallCode = GPIO_ReadInputData(HALL_PORT);5 w: i% a; z1 a/ |5 |3 l& g, U
hallCode = (hallCode & 0xE0)>>5;
1 b; G$ l T/ i; ?+ R , q% c( F: W* ~. n, H7 [% [! `
MotorControler.Hall_Code = hallCode;& E5 g2 y( _6 `
; a9 b7 u& l+ v) N switch (MotorControler.Hall_Code)
7 J+ _1 r# s# N' C* r {
/ |5 Z7 m. Y! ]- y* ~ N case 0x01: MotorControler.Hall_Step = 0; break;" ~, W, W0 C) l$ J6 m
case 0x03: MotorControler.Hall_Step = 5; break;2 Q( B: r3 z0 `) a) A2 t
case 0x02: MotorControler.Hall_Step = 4; break;4 n; |4 @' X& p& }- c+ K/ F
case 0x06: MotorControler.Hall_Step = 3; break;2 u# f; { z8 h m0 t$ L8 E* O/ y
case 0x04: MotorControler.Hall_Step = 2; break;/ d) X* X) l/ F! [
case 0x05: MotorControler.Hall_Step = 1; break;
( b5 T* p3 w3 o# V1 v% O5 N3 ` default: MotorControler.Hall_Step = HALL_CODE_ERROR; break;
' g) x1 m3 I, F$ N& C& A }, b/ y2 A# v0 {
} 3 ]" a- W, \" L3 [5 J
已经更换过一次mcu问题还在,请教有没有大虾遇到过这个问题,或者有解决思路,帮忙指点一下。 2 y4 Y5 e4 e1 s
拜谢。# B& o2 x4 @8 w) J$ r# S' d; q
8 ~% ?7 L+ Q6 a* N8 J6 w |
|