本帖最后由 stb988 于 2023-1-11 09:11 编辑
#申请原创# 有幸获得凌欧LKS开发板评测,大体看了一下板子,也从论坛下载了开源的无感FOC程序,接在自已手中的软驱电机上,稍作修改,只能运转一下就停了,应该是开环到闭环就停了吧,先不去研究这么高深的程序了,里面一堆算法,看着就头疼。先来看看这个ADC与串口吧,从官网下载了DEMO,但是打开程序看了一下,发现其实并不适合我们手中的这个开发板,我们手中的这个单片机型号为LKS32MC037EM6S8, 这个是TSSOP24封装的,简化了很多引脚。 先来看看串口,原程序是用的P0.9与P0.7,
而我们开发板如果用来操作电机,P0.7是用来采集电源电压的,而P0.9也不知道有没有,索性改从P16输出,接收暂时用不着,调试的时候可以用P16打印各种数据,方便调试,
而且P16刚好可以从底板输出。把GPIO口初始化改改就可以了
void GPIO_init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit(&GPIO_InitStruct);
/* P0.9-RX0, P0.7-TX0 UART0 */
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIO1, &GPIO_InitStruct);
// GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
// GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
// GPIO_Init(GPIO0, &GPIO_InitStruct);
// GPIO_PinAFConfig(GPIO0, GPIO_PinSource_9, AF4_UART); //P0.9复用为UART_RX
GPIO_PinAFConfig(GPIO1, GPIO_PinSource_6, AF4_UART); //P0.7复用为UART_TX
}
接下来就是ADC了,我看了开发板底板上有一个电位器,电位器连接的是P0.8,也就是ADC_CH4,但是我查看了ADC的DEMO程序,发现DEMO里是采集的ADC_CH5,所以这里也需要修改一下,
这里需要修改一下。
最后把两个整合到一起,编译下载到单片机里,打开串口调试助手,调整电位器,
最后从串口助手中打印出来,
看了官方的说明,也可以在KEIL中的watch2中查看到值,但是我的老是掉线连接不上,我还是觉得用串口打印更方便,不知道小伙伴们觉得怎样更方便呢?
还有就是希望官方出一个简单一点的无感无刷例程,不要一上来就整个FOC,对初学者不友好。
最后献上程序,大家也可以下载试试。
ADC_SW_Trigger.zip
(1.49 MB)
|