野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19366|回复: 13

野火版f429的板子如何拓展WiFi例程

[复制链接]
发表于 2017-3-10 11:18:31 | 显示全部楼层 |阅读模式
新手上路,请多多指教买了火哥的板子想通过自带的easylink那个例程扩展成手机app控制电机转动,目前的想法是在控制LED灯亮的程序中增加一些代码,例如红灯亮,同时控制电机正转,绿灯亮同时电机左转,想问火哥控制LED灯亮的程序是哪一个,找了一个星期了,还是没有头绪。因为要做一个创新项目,比较急,希望火哥或者对这个例程熟悉的大神能指点一下,非常感谢

我找了很久,觉得应该在这个文件里,但是代码真心看不懂,还望指点

我找了很久,觉得应该在这个文件里,但是代码真心看不懂,还望指点
回复

使用道具 举报

发表于 2017-3-10 14:03:19 | 显示全部楼层
就是这里,手机app会通过网络传入RGB颜色值,在这个函数里利用颜色值设置RGB LED灯的颜色,

你可以用red = 0xFF时点亮LED灯,同时加入控制电机正转
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-11 20:29:12 | 显示全部楼层
flyleaf 发表于 2017-3-10 14:03
就是这里,手机app会通过网络传入RGB颜色值,在这个函数里利用颜色值设置RGB LED灯的颜色,

你可以用red ...

非常感谢,我试试看。追问一句,我在用手机app控制挑战者的板子上的led灯时发现它的颜色只能在浅蓝色到浅绿色这个色段变化,不能变成红色,这是什么情况
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-12 22:20:36 | 显示全部楼层
本帖最后由 任逍遥 于 2017-3-12 22:25 编辑
flyleaf 发表于 2017-3-10 14:03
就是这里,手机app会通过网络传入RGB颜色值,在这个函数里利用颜色值设置RGB LED灯的颜色,

你可以用red ...

您好,上次我问了关于用挑战者F429的板子自带的easylink wifi例程如何扩展成控制电机转动的问题,我正在调试,还没有成功,我还想问您一下,为什么这个例程没有main函数呢,那利用颜色值设置RGB LED灯的颜色的函数在哪里调用呢C:\用户\hw\桌面
C`I`HSDKT9A78OKGIO[}GLO.png
回复 支持 反对

使用道具 举报

发表于 2017-3-13 09:18:26 | 显示全部楼层
任逍遥 发表于 2017-3-12 22:20
您好,上次我问了关于用挑战者F429的板子自带的easylink wifi例程如何扩展成控制电机转动的问题,我正在 ...

ctrl + F ,find in all file ,输入这个函数名,可以搜索这个函数在整个工程哪里使用到
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-13 13:56:40 | 显示全部楼层
本帖最后由 任逍遥 于 2017-3-13 14:02 编辑

谢谢,找到了。这个步进电机驱动器的PUL+和PUL-可以直接和开发板上的5V和PH4这两个引脚连接吗?这些GPIO引出排针应该都可以直接和驱动器的方向信号或者脉冲信号口连接吧。
2.jpg
1.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-14 10:07:19 | 显示全部楼层
本帖最后由 任逍遥 于 2017-3-14 10:08 编辑
flyleaf 发表于 2017-3-13 09:18
ctrl + F ,find in all file ,输入这个函数名,可以搜索这个函数在整个工程哪里使用到

谢谢,找到了。这个步进电机驱动器的PUL+和PUL-可以直接和开发板上的5V和PH4这两个引脚连接吗?这些GPIO引出排针应该都可以直接和驱动器的方向信号或者脉冲信号口连接吧。
140152rd9uaeack90ddi4d.jpg
140201x55dcd5c6ixxd5gq.jpg
回复 支持 反对

使用道具 举报

发表于 2017-3-14 10:37:18 | 显示全部楼层
有的是定时器输出,要选定时器
其它普通GPIO可以任意选

选好要改程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-16 22:24:02 | 显示全部楼层
本帖最后由 任逍遥 于 2017-3-16 22:40 编辑
flyleaf 发表于 2017-3-14 10:37
有的是定时器输出,要选定时器
其它普通GPIO可以任意选

您好,我想用板子上引出的GPIO中SPI1/I2S3这部分的PA4和PA5引脚,如下图,分别连接步进电机驱动器的PUL-和DIR-,用来发脉冲信号和方向信号,以下是我的程序:
c文件:
#include "bsp_motor.h"

void Motor_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_Initstruct;
        
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
        
        GPIO_Initstruct.GPIO_Pin = GPIO_Pin_4;
        GPIO_Initstruct.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_Initstruct.GPIO_OType = GPIO_OType_PP;
        GPIO_Initstruct.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_Initstruct.GPIO_Speed = GPIO_Fast_Speed;
        
        GPIO_Init(GPIOA,&GPIO_Initstruct);
        GPIO_Initstruct.GPIO_Pin = GPIO_Pin_5;
        GPIO_Init(GPIOA,&GPIO_Initstruct);
}

void DelayMs(unsigned int x)   
{
        unsigned char i;
        while(x--)
        {
                for (i = 0; i<20; i++)
                {}
        }
}
h文件:
#ifndef _BSP_MOTOR_H
#define _BSP_MOTOR_H

#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
void Motor_GPIO_Config(void);
void DelayMs(unsigned int x);   

#endif /*_BSP_MOTOR_H*/

main函数:
#include "stm32f4xx.h"
#include "bsp_motor.h"

/*****************************************/
/*PA4接步进电机驱动器PUL-端,提供脉冲信号*/
/*PA5接步进电机驱动器DIR-端,提供方向信号*/
/*****************************************/
int main(void)
{
        Motor_GPIO_Config();
        
        //DIR-为低顺时针转动                     
        GPIO_ResetBits(GPIOA,GPIO_Pin_5);                                                        
                while(1)
                {
                                GPIO_ResetBits(GPIOA,GPIO_Pin_4);
                                DelayMs(1);                                                 //10~20对应0.11ms
                                GPIO_SetBits(GPIOA,GPIO_Pin_4);
                                DelayMs(1);
                }
        /*DIR-为高电动机逆时针转动*/
        /*
        GPIO_SetBits(GPIOA,GPIO_Pin_5);                                
                while(1)
                {
                                GPIO_SetBits(GPIOA,GPIO_Pin_4);
                                DelayMs(1);
                                GPIO_ResetBits(GPIOA,GPIO_Pin_4);
                                DelayMs(1);
                }
        
        */
}  

      编译过没有错误,但是电机不能正常转动,延时函数的时间是按600r/min,步进电机细分为800脉冲/转设置的,我还用万用表测了PA4,PA5的电压,发现PA5就是发方向信号的引脚的电压始终是高,有一次还测出大于5V,请问是我的程序有问题还是其他的问题?我用另一个小模块做了测试,电机可以正常转动。


1.jpg
回复 支持 反对

使用道具 举报

发表于 2017-3-17 09:26:10 | 显示全部楼层
我们的程序不是在MicroStepDriver.h里有提供宏吗?直接在宏里改引脚啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-17 10:31:26 | 显示全部楼层
flyleaf 发表于 2017-3-17 09:26
我们的程序不是在MicroStepDriver.h里有提供宏吗?直接在宏里改引脚啊

不还意思,请问你说的这个MicroStepDriver.h文件在哪里?是步进电机例程里的吗?还是wifi例程里的,我都没有找到诶。
回复 支持 反对

使用道具 举报

发表于 2017-3-17 14:01:48 | 显示全部楼层
任逍遥 发表于 2017-3-17 10:31
不还意思,请问你说的这个MicroStepDriver.h文件在哪里?是步进电机例程里的吗?还是wifi例程里的,我都 ...

野火【步进电机驱动BH-MSD4805】模块资料

百度网盘 资料链接:https://pan.baidu.com/s/1dFBm18l
淘宝:https://item.taobao.com/item.htm ... 03D&id=543053172983

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-17 17:54:38 | 显示全部楼层
flyleaf 发表于 2017-3-17 14:01
野火【步进电机驱动BH-MSD4805】模块资料

百度网盘 资料链接:https://pan.baidu.com/s/1dFBm18l

非常感谢,这个驱动器也可以是其他型号的吧,我买的是DM542的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-20 16:15:09 | 显示全部楼层
flyleaf 发表于 2017-3-17 14:01
野火【步进电机驱动BH-MSD4805】模块资料

百度网盘 资料链接:https://pan.baidu.com/s/1dFBm18l

挑战者板子资料里的easylink wifi例程可以多次配网吗?最近想在实验室用,然而老是连不上网,刚开始是用笔记本开的热点,笔记本插的校园网,到实验室电脑连了实验室的wifi,再用电脑开一个热点,板子就连不上这个热点了,而手机可以,能正常上网,而后我又将笔记本的热点名字改了,重新配网,板子还是连不上,难道以后只能在宿舍做实验了吗
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-6 05:34 , Processed in 0.055092 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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