资源简介
有感无刷电机驱动程序 已调试通过。 主控芯片stm8s903,HALL换向
代码片段和文件信息
/* MAIN.C file
摘要:
1.PD7延时反转,指示系统工作。
2.上电,按指定PWM输出换相,实现电机基本运转功能。
3.换相依据为HALl信号,采用PORTD中断功能完成.
总之,上电根据HALL状态换相,并在输出PWM信号后,电机会转动,
同时HALL信号不断改变,然后进入捕获中断,进行及时换相。
如此实现电机的运转控制。
2013.5.8
*/
#include “stm8s.h“
#define STM8_FREQ_MHZ 16
#define PWM_FREQUENCY 16000
static const u32 hArrPwmVal = ((u16)((STM8_FREQ_MHZ * (u32)1000000)/PWM_FREQUENCY));
//PWM信号周期
#define PWMOUT 0
//按15%占空比输出
//六步法中,CH1\CH2通道极性及使能配置
//六步法中,CH3通道极性及使能配置
//ABACBCBACACB
//const unsigned char PWM_EN1_TAB[6]={0x010x010x100x100x000x00}; //1为使能 //已改为:CH1->A
//const unsigned char PWM_EN2_TAB[6]={0x000x000x000x000x010x01};
const unsigned char PWM_EN1_TAB[6]={0x000x000x100x100x010x01};
//六步法中,CH1\CH2通道极性及使能配置
const unsigned char PWM_EN2_TAB[6]={0x010x010x000x000x000x00};
//六步法中,CH3通道极性及使能配置
static unsigned char DIR_F=0;//DIR_F=1 -> CW DIR_F=0 -> CCW
unsigned char bHallSteps[2][8]={
{72014357}//正转
{75341027}//反转
};
//unsigned char bHallSteps[2][8]={
//{74052317}//正转
//{71325047}//反转
//};
//0 1 2 3 4 5 6 7 8
// 4
//上桥臂开关控制端口定义
#define MCO1_PORT GPIOC
#define MCO1_PIN GPIO_PIN_3
#define MCO3_PORT GPIOC
#define MCO3_PIN GPIO_PIN_7
#define MCO5_PORT GPIOC
#define MCO5_PIN GPIO_PIN_6
//下桥臂开关控制端口定义
#define MCO0_PORT GPIOC
#define MCO0_PIN GPIO_PIN_2
#define MCO2_PORT GPIOC
#define MCO2_PIN GPIO_PIN_1
#define MCO4_PORT GPIOE
#define MCO4_PIN GPIO_PIN_5
//下桥臂低电平开关管导通
#define PWM_A_OFF MCO0_PORT->ODR |= (u8)MCO0_PIN;
#define PWM_B_OFF MCO2_PORT->ODR |= (u8)MCO2_PIN;
#define PWM_C_OFF MCO4_PORT->ODR |= (u8)MCO4_PIN;
#define PWM_A_ON MCO0_PORT->ODR &= (u8)(~MCO0_PIN);
#define PWM_B_ON MCO2_PORT->ODR &= (u8)(~MCO2_PIN);
#define PWM_C_ON MCO4_PORT->ODR &= (u8)(~MCO4_PIN);
//霍尔引脚定义
#define H1_PORT GPIOD->IDR
#define H1_PIN BIT2
#define H2_PORT GPIOD->IDR
#define H2_PIN BIT3
#define H3_PORT GPIOD->IDR
#define H3_PIN BIT4
/* Private vars and define */
#define BIT0 0x01
#define BIT1 0x02
#define BIT2 0x04
#define BIT3 0x08
#define BIT4 0x10
#define BIT5 0x20
#define BIT6 0x40
#define BIT7 0x80
//换相子函数声明
void Commutation(unsigned char bHallStartStepunsigned int OutPwmValue);
unsigned int outpwm=0;
u16 Conversion_Val;
//初始化按键,指示灯端口
void GPIO_int(void)
{
/* LEDs */
GPIO_Init(GPIOD GPIO_PIN_7 GPIO_MODE_OUT_PP_HIGH_FAST);
}
//系统时钟配置:内部16M
void Clock_init(void)
{
/* Select fCPU = 16MHz */
CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
}
//换相电路开关管IO初始化
void PWM_IO_init(void)
{
//PB012 下桥臂0有效 配置为高电平
GPIO_Init(MCO0_PORT MCO0_PINGPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(MCO2_PORT MCO2_PINGPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(MCO4_PORT MCO4_PINGPIO_MODE_OUT_PP_HIGH_FAST);
//PC123 上桥臂1有效配置为低电平
GPIO_Init(MCO1_PORT MCO1_PINGPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(MCO3_PORT MCO3_PINGPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(MCO5_PORT MCO5_PINGPIO_MODE_OUT_PP_LOW_FAST);
}
void Tim1_in
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6465 2018-11-11 22:26 7.7.2 RUN WITH HALL_MY\bldc.dep
文件 974 2018-11-11 22:26 7.7.2 RUN WITH HALL_MY\bldc.pdb
文件 16786 2018-11-08 18:39 7.7.2 RUN WITH HALL_MY\bldc.stp
文件 500 2018-11-10 21:23 7.7.2 RUN WITH HALL_MY\bldc_Programmer\bldc_STVP.stp
文件 103 2018-11-10 21:23 7.7.2 RUN WITH HALL_MY\bldc_Programmer\bldc_STVP_OPTION BYTE.hex
文件 455 2018-11-10 21:24 7.7.2 RUN WITH HALL_MY\checkres.spy
文件 37735 2018-11-10 21:22 7.7.2 RUN WITH HALL_MY\Debug\bldc.elf
文件 2387 2018-11-08 18:27 7.7.2 RUN WITH HALL_MY\Debug\bldc.lkf
文件 41032 2018-11-10 21:22 7.7.2 RUN WITH HALL_MY\Debug\bldc.map
文件 14252 2018-11-10 21:22 7.7.2 RUN WITH HALL_MY\Debug\bldc.s19
文件 106076 2018-11-10 21:22 7.7.2 RUN WITH HALL_MY\Debug\bldc.sm8
文件 31546 2018-11-10 21:22 7.7.2 RUN WITH HALL_MY\Debug\main.ls
文件 12257 2018-11-10 21:22 7.7.2 RUN WITH HALL_MY\Debug\main.o
文件 44376 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_adc1.ls
文件 18362 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_adc1.o
文件 38676 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_clk.ls
文件 18658 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_clk.o
文件 10330 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_exti.ls
文件 4490 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_exti.o
文件 10529 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_gpio.ls
文件 6919 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_gpio.o
文件 117482 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_tim1.ls
文件 57927 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8s_tim1.o
文件 72848 2013-05-10 12:04 7.7.2 RUN WITH HALL_MY\Debug\stm8s_tim5.ls
文件 36579 2013-05-10 12:04 7.7.2 RUN WITH HALL_MY\Debug\stm8s_tim5.o
文件 5537 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8_interrupt_vector.ls
文件 2813 2018-11-10 14:34 7.7.2 RUN WITH HALL_MY\Debug\stm8_interrupt_vector.o
文件 114637 2013-05-09 16:08 7.7.2 RUN WITH HALL_MY\Libraries\inc\stm8s.h
文件 15026 2011-02-25 17:22 7.7.2 RUN WITH HALL_MY\Libraries\inc\stm8s_adc1.h
文件 11473 2011-02-25 17:22 7.7.2 RUN WITH HALL_MY\Libraries\inc\stm8s_adc2.h
............此处省略79个文件信息
相关资源
- STM8S003 红外遥控
- STM8S例程,基于IAR下的STM8S例程
- 基于STM8的HT1621B显示驱动程序
- STM8驱动HT1621B
- STM8L中文参考手册1-4全
- STM8L_MPU6500_DMP_震动唤醒
- arduino主机,stm8从机。I2C测试 。每次
- Lora通讯 stm8
- STM8+FM17750低成本刷卡方案资料硬件设
- STM8_无线315&433_脉宽自适应_通用解码
- STM8S103系列IO模拟串口通信实现真正串
- STM8S中文参考手册
- cosmic STM8破解
- STM8全系列封装
- STM8L051 低功耗运行模式 库函数例程
- STM8L051.串口接收IDLE中断.zip
- 移植在STM8上的实时操作系统uCOS
- 额温枪STM8L方案含原理图和代码.rar
- STM8L 硬件IIC主机
- (D)基于NTC热敏电阻的温度计.zip
- STM8s官方固件库
- STM8+NRF24l01+发送程序
- STM8+NRF24l01+接收程序
- stm8s006超声波硬件设计电路
- stm8的485串口收发程序
- STM8最强固件库
- STM8蜂鸣器音乐演奏
- IAR+for+STM8+ 破解
- IARforSTM83.10IARFORARM8.3注册机.zip
- STM8S105C6 ADC三通道采样-调试可用
评论
共有 条评论