OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3207|回复: 1

请问一下这几句LPC的程序怎样转成STM32呢

[复制链接]

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2018-10-26
在线时间
58 小时
发表于 2019-5-2 03:23:01 | 显示全部楼层 |阅读模式
2金钱
本帖最后由 rcfans 于 2019-5-2 03:24 编辑

搞了一个多星期没办法,只能来求助下各位前辈,LPC1768 => STM32F103VET6
[mw_shl_code=c,true]
fx  = 0;
P = 0;
mc = 1;
LPC_GPIO0->FIODIR = fx;
LPC_GPIO0->FIOCLR = fx;
LPC_GPIO2->FIOSET=mc;
LPC_GPIO2->FIODIR=mc+P;
LPC_GPIO2->FIOCLR=mc+P;
[/mw_shl_code]

这几句主要是切换高低电平来产生脉冲驱动步进电机,代码位于Time0定时内,定时器设置为

[mw_shl_code=cpp,true]
void timer0Init (unsigned int fp){
    LPC_TIM0->TCR  = 0x02;
    LPC_TIM0->IR   = 1;
    LPC_TIM0->CTCR = 0;
    LPC_TIM0->TC   = 0;
    LPC_TIM0->R   = 0;
    // SystemFrequency = 4000000
    LPC_TIM0->MR0  =SystemFrequency /(4*fp);
    LPC_TIM0->MCR  = 0x03;
    LPC_TIM0->TCR  = 0x01;                                             
}
[/mw_shl_code]
调用 timer0Init(250000);
默认systeminit ,这个应该是 1us的定时中断时间吗,我在STM32里设置的是1us,刚入门,不太懂LPC的定时器算法,还请前辈指点一下

我的解决办法如下

[mw_shl_code=cpp,true]
GPIOD->BRR        =        0xff;
GPIOD->BSRR        =fx;
GPIOA->BRR        =        0xff;
GPIOA->BSRR        =        mc;
GPIOA->BRR |=        mc+P;
GPIOA->BSRR        =        mc+P;
[/mw_shl_code]

但是实验结果是步进电机堵转,产生卡顿.不明白为什么,还请各位前辈指教



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2018-10-26
在线时间
58 小时
 楼主| 发表于 2019-5-2 13:26:14 来自手机 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-29 07:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表