打印
[STM32]

小白鸟四轴飞行器学习之路

[复制链接]
2843|45
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
8677343898|  楼主 | 2018-2-5 08:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
8677343898|  楼主 | 2018-2-5 19:53 | 只看该作者
本帖最后由 8677343898 于 2018-3-6 09:19 编辑

今天遇到的问题:
       在KEIL上写好LED驱动代码,经过Jlink链接STM32103c调试,发现要驱动的灯不亮,飞行器四周的灯确莫名其妙的逐渐变亮;
代码如下:
#include "stm32f10x.h"

#define LED2_GPIO GPIOB
#define LED2_Pin  GPIO_Pin_3
#define LED3_GPIO GPIOC
#define LED3_Pin  GPIO_Pin_13


#define LED2_ON                        LED2_GPIO->BRR        = LED2_Pin;
#define LED2_OFF                LED2_GPIO->BSRR = LED2_Pin;
#define LED3_ON                        LED3_GPIO->BSRR = LED3_Pin;
#define LED3_OFF                LED3_GPIO->BRR  = LED3_Pin;

static void delay(uint16_t n)
{
        uint16_t i,j;
        for(i=0;i<n;i++)
        for(j=0;j<n; j++);
}

int main(void)
{
       <font color="#ff0000"> void LED_Init();</font>
        while(1)
        {
                LED2_ON;
                delay(1000);
                LED3_ON;
                delay(1000);
                LED2_OFF;
                delay(1000);
                LED3_OFF;
                delay(1000);
        }
}

void LED_Init(void)
{
        GPIO_InitTypeDef GPIO_Structure;
        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
        
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
        
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
        
        GPIO_Structure.GPIO_Pin= LED2_Pin;
        GPIO_Structure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Structure.GPIO_Mode=GPIO_Mode_Out_PP;//
        GPIO_Init(LED2_GPIO,&GPIO_Structure);
        GPIO_Structure.GPIO_Pin= LED3_Pin;
        GPIO_Structure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Structure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(LED3_GPIO,&GPIO_Structure);
}


暂时还未解决。------------------------------------------------------------------------------------------------------------------------
解决了。犯了个智障的错误。见代码上标红的地方。声明了函数却没有使用。Dammit

使用特权

评论回复
板凳
8677343898|  楼主 | 2018-2-5 20:03 | 只看该作者
另外,STM32总共有48个引脚,但是有五个GPIO端口,每个端口又说有15个引脚,引脚不是莫名其妙的多了?

使用特权

评论回复
地板
8677343898|  楼主 | 2018-2-6 07:04 | 只看该作者
2018年2月6日。通过昨天晚上的学习,发现是代码出错了。但是,具体哪里错了,没有找到。找到正确的代码后飞行器上的调试正常,今天学习方式作出调整,根据代码学习STM32

使用特权

评论回复
5
8677343898|  楼主 | 2018-2-7 07:26 | 只看该作者
2018年2月7日:昨天学习内容,GPIO_INITypeDef 结构体、GPIOSpeed_TypeDef 枚举类型、GPIOModeTypeDef枚举类型、void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Perph,FunctionalState NewState)外围总线时钟设置函数,FunctionalState 功能状态设置枚举类型,判断参数状态函数 assert_param();等内容。
昨天学习内容较少,存在浪费时间的现象。今天要做到,兼职、学习动态结合,充分利用时间。

使用特权

评论回复
6
8677343898|  楼主 | 2018-2-8 07:18 | 只看该作者
2018年2月8日。昨天的学习内容如下:
       了解到,GPIO口的复用和映射,要完成这两个功能,必须要有RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);   即AFIO的使能。
使用一个GPIO口,先使能该GPIO,然后在完善GPIO结构体中的各个数据,引脚号,频率、输出模式。最后在初始化GPIO_Init(LED2_GPIO, &GPIO_Structure);
以下是参考内容:
端口复用和重映射:wenku点baidu点com/view/1b62870376232f60ddccda38376baf1ffc4fe30c点html
STM32学习笔记-第一章GPIO口:wenku点baidu点com/view/a9efb826af45b307e871978a点html
STM32端口复用和重映射:blog点csdn点net/w_h_h521/article/details/51858787
什么时候需要用到RCC_APB2Periph_AFIO--复用IO时钟的使用:blog点csdn点net/gtkknd/article/details/43636727
STM32F10x GPIO引脚说明:blog点csdn点net/zhitianya/article/details/50777885

使用特权

评论回复
7
8677343898|  楼主 | 2018-2-9 08:23 | 只看该作者
2018年,2月9日。今天很尴尬,登录帐号提示,异地登录,请用手机验证码登录。输入手机号,又提示手机未注册,(明明注册了)。退回到登录界面,选着用手机验证码登录,又可以了,网站是不是出毛病了?
好了,没时间了,说下昨天的学习内容。基本了解的GPIO口的设置,通过GPIO->BRR、和GPIO->BSRR设置接口状态,点亮的LED灯。看了两眼USART的介绍。这个USART是不是就是串口?

使用特权

评论回复
8
8677343898|  楼主 | 2018-2-10 07:19 | 只看该作者
2018年2月10日,昨天学习内容为:
阅读,STM32串口驱动代码。在板子上用SWD就扣调试的时候,发现电脑端读不到串口,上网查了下,貌似,SWT和USART不一样,又把USRT焊上针脚。但是发现J-link上的标识符和USRT的引脚标识符对不上号。天那,又被定到这里了。。。。。又卡壳了,引脚对不上号,也不敢用板子调试,生怕芯片坏了。过年了,又买不到。今天又有的忙了。。。

使用特权

评论回复
9
8677343898|  楼主 | 2018-2-11 07:44 | 只看该作者
2018年2月11日,昨天的学习内容如下:
知道了,SWD和USART不一样,USART_InitTypeDef结构体初始化结构体,USART_TypeDef结构体,定义串口类型,USART1是通过宏定义,直接定义到外围设备地址。STM32串口中的硬件流,STM32的8中IO口模式。串口的初始化函数。

使用特权

评论回复
10
gujiamao12345| | 2018-2-11 14:28 | 只看该作者
帮顶!

使用特权

评论回复
11
gujiamao12345| | 2018-2-11 14:29 | 只看该作者
8677343898 发表于 2018-2-9 08:23
2018年,2月9日。今天很尴尬,登录帐号提示,异地登录,请用手机验证码登录。输入手机号,又提示手机未注册 ...

UART和USART的区别
在这里,你可以当做串口

使用特权

评论回复
评论
8677343898 2018-2-12 07:31 回复TA
恩,是的。UART不能选异步,USART是同步异步均可选 
12
gujiamao12345| | 2018-2-11 14:30 | 只看该作者
8677343898 发表于 2018-2-10 07:19
2018年2月10日,昨天学习内容为:
阅读,STM32串口驱动代码。在板子上用SWD就扣调试的时候,发现电脑端读不 ...

SWD要用到串口?
串口下载是ISP吧

使用特权

评论回复
13
8677343898|  楼主 | 2018-2-12 07:34 | 只看该作者
gujiamao12345 发表于 2018-2-11 14:30
SWD要用到串口?
串口下载是ISP吧

恩恩,是的,我搞错了。我用的J-link,链接开发板下载程序,那个SWD不是串口。需要弄个USB转串口线,连接串口与计算机通信

使用特权

评论回复
14
8677343898|  楼主 | 2018-2-12 07:49 | 只看该作者
2018年2月12日。昨天的学习内容如下:
知道了,中断设置,还有,那个环形发送缓冲区,感觉名字不怎么形象。还有了解了输出数据的各种形式。以HEX的形式、字符的形式等。今天争取把串口这里整完。
另外,昨天有个小疑惑,记下来。中断有限分组设置,和中断服务函数在逻辑上有什么不一样?

使用特权

评论回复
15
8677343898|  楼主 | 2018-2-13 08:53 | 只看该作者
2018年2月13日。昨天,没看书。去串亲戚了

使用特权

评论回复
16
8677343898|  楼主 | 2018-2-22 07:04 | 只看该作者
2018年2月22日,从年中醒过来了,。昨天学习内容如下:
读串口收发的代码,感觉代码已经比较容易理解了,但是自己应该写不出来。接下来是继续读代码还是自己开始练,有点迷惑。

使用特权

评论回复
17
8677343898|  楼主 | 2018-2-23 07:32 | 只看该作者
2018年2月23日,昨天的学习内容如下:
飞行器姿态解算的基础知识点:
旋转矩阵、点反演、右手坐标系、四元数、

使用特权

评论回复
18
8677343898|  楼主 | 2018-2-24 07:39 | 只看该作者
2018年2月24日,昨天学习内容如下:
在板子上按照代码模拟了PWM驱动电机实验。看着代码不难理解,有一个疑惑,学习心得开发板,难度只在**代码?

使用特权

评论回复
19
8677343898|  楼主 | 2018-2-25 08:18 | 只看该作者
2018年2月25日,昨天学习内容如下:
ADC与DMA的实验:AHB、APB详解:参考网站blog.csdn.net/yu132563/article/details/53440590

使用特权

评论回复
20
8677343898|  楼主 | 2018-2-26 07:47 | 只看该作者
2018年2月26日:
昨天看姿态算法,比较头疼。想请教大佬们,学习这个算法什么方法比较好?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

43

帖子

1

粉丝