埋め込みモジュール——L 298 NはAB相エンコーダモータを駆動して速度を測定する
基礎知識と原理:https://blog.csdn.net/teavamc/article/details/77429519?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159609695319724848359683%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159609695319724848359683&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v3~pc_rank_v2-10-77429519.first_rank_ecpm_v3_pc_rank_v2&utm_term=l298n%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9D%97%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95&spm=1018.2118.3001.4187
配線図:https://www.jianguoyun.com/p/DbIheDoQ0KP8BxirlrAD
問題の解決方法:https://blog.csdn.net/m0_37763336/article/details/100343098?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159610118019725250163299%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159610118019725250163299&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-100343098.first_rank_ecpm_v3_pc_rank_v2&utm_term=l298n%E9%A9%B1%E5%8A%A8%E7%94%B5%E6%9C%BA%E4%B8%8D%E5%8A%A8&spm=1018.2118.3001.4187
プログラムソース:メイン関数を添付:
配線図:https://www.jianguoyun.com/p/DbIheDoQ0KP8BxirlrAD
問題の解決方法:https://blog.csdn.net/m0_37763336/article/details/100343098?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159610118019725250163299%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159610118019725250163299&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-100343098.first_rank_ecpm_v3_pc_rank_v2&utm_term=l298n%E9%A9%B1%E5%8A%A8%E7%94%B5%E6%9C%BA%E4%B8%8D%E5%8A%A8&spm=1018.2118.3001.4187
プログラムソース:メイン関数を添付:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "pwm.h"
#include "timer.h"
#include "stm32f4xx_rcc.h"
RCC_ClocksTypeDef get_rcc_clock; //
int main(void)
{
RCC_GetClocksFreq(&get_rcc_clock);
int encoder;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 2
LED_Init();
delay_init(168); //
uart_init(115200);// 115200
TIM14_PWM_Init(500-1,84-1); //84M/84=1Mhz , 500, PWM 1M/500=2Khz.
encoder_tim3_init();
while(1) // 0-300 , 300 300-0 ,
{
GPIO_SetBits(GPIOF,GPIO_Pin_0); //
GPIO_ResetBits(GPIOF,GPIO_Pin_1);
TIM_SetCompare1(TIM14,0); // ,
delay_ms(1000);
encoder = read_encoder();
printf("t:%d\r
",encoder);
TIM_SetCompare1(TIM14,400); // ,
delay_ms(1000);
encoder = read_encoder();
printf("t:%d\r
",encoder);
GPIO_ResetBits(GPIOF,GPIO_Pin_0); //
GPIO_ResetBits(GPIOF,GPIO_Pin_1);
delay_ms(1000);
encoder = read_encoder();
printf("t:%d\r
",encoder);
GPIO_ResetBits(GPIOF,GPIO_Pin_0); //
GPIO_SetBits(GPIOF,GPIO_Pin_1);
TIM_SetCompare1(TIM14,0); // ,
delay_ms(1000);
encoder = read_encoder();
printf("t:%d\r
",encoder);
TIM_SetCompare1(TIM14,400); // ,
delay_ms(1000);
encoder = read_encoder();
printf("t:%d\r
",encoder);
}
}