小白鸟四轴飞行器学习之路
本帖最后由 8677343898 于 2018-2-5 08:07 编辑从今天开始,每天发学习进程。小白鸟本人用的是烈火狂龙大神的飞行器组件。本人今年大四了,想把这个四轴飞行器当做毕设来做,欢迎各位大鹏鸟指导
本帖最后由 8677343898 于 2018-3-6 09:19 编辑
今天遇到的问题:
在KEIL上写好LED驱动代码,经过Jlink链接STM32103c调试,发现要驱动的灯不亮,飞行器四周的灯确莫名其妙的逐渐变亮;
代码如下:
#include "stm32f10x.h"
#define LED2_GPIO GPIOB
#define LED2_PinGPIO_Pin_3
#define LED3_GPIO GPIOC
#define LED3_PinGPIO_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
另外,STM32总共有48个引脚,但是有五个GPIO端口,每个端口又说有15个引脚,引脚不是莫名其妙的多了? 2018年2月6日。通过昨天晚上的学习,发现是代码出错了。但是,具体哪里错了,没有找到。找到正确的代码后飞行器上的调试正常,今天学习方式作出调整,根据代码学习STM32
2018年2月7日:昨天学习内容,GPIO_INITypeDef 结构体、GPIOSpeed_TypeDef 枚举类型、GPIOModeTypeDef枚举类型、void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Perph,FunctionalState NewState)外围总线时钟设置函数,FunctionalState 功能状态设置枚举类型,判断参数状态函数 assert_param();等内容。
昨天学习内容较少,存在浪费时间的现象。今天要做到,兼职、学习动态结合,充分利用时间。 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
2018年,2月9日。今天很尴尬,登录帐号提示,异地登录,请用手机验证码登录。输入手机号,又提示手机未注册,(明明注册了)。退回到登录界面,选着用手机验证码登录,又可以了,网站是不是出毛病了?
好了,没时间了,说下昨天的学习内容。基本了解的GPIO口的设置,通过GPIO->BRR、和GPIO->BSRR设置接口状态,点亮的LED灯。看了两眼USART的介绍。这个USART是不是就是串口? 2018年2月10日,昨天学习内容为:
阅读,STM32串口驱动代码。在板子上用SWD就扣调试的时候,发现电脑端读不到串口,上网查了下,貌似,SWT和USART不一样,又把USRT焊上针脚。但是发现J-link上的标识符和USRT的引脚标识符对不上号。天那,又被定到这里了。。。。。又卡壳了,引脚对不上号,也不敢用板子调试,生怕芯片坏了。过年了,又买不到。今天又有的忙了。。。 2018年2月11日,昨天的学习内容如下:
知道了,SWD和USART不一样,USART_InitTypeDef结构体初始化结构体,USART_TypeDef结构体,定义串口类型,USART1是通过宏定义,直接定义到外围设备地址。STM32串口中的硬件流,STM32的8中IO口模式。串口的初始化函数。 帮顶!
8677343898 发表于 2018-2-9 08:23
2018年,2月9日。今天很尴尬,登录帐号提示,异地登录,请用手机验证码登录。输入手机号,又提示手机未注册 ...
UART和USART的区别
在这里,你可以当做串口 8677343898 发表于 2018-2-10 07:19
2018年2月10日,昨天学习内容为:
阅读,STM32串口驱动代码。在板子上用SWD就扣调试的时候,发现电脑端读不 ...
SWD要用到串口?
串口下载是ISP吧 gujiamao12345 发表于 2018-2-11 14:30
SWD要用到串口?
串口下载是ISP吧
恩恩,是的,我搞错了。我用的J-link,链接开发板下载程序,那个SWD不是串口。需要弄个USB转串口线,连接串口与计算机通信 2018年2月12日。昨天的学习内容如下:
知道了,中断设置,还有,那个环形发送缓冲区,感觉名字不怎么形象。还有了解了输出数据的各种形式。以HEX的形式、字符的形式等。今天争取把串口这里整完。
另外,昨天有个小疑惑,记下来。中断有限分组设置,和中断服务函数在逻辑上有什么不一样? 2018年2月13日。昨天,没看书。去串亲戚了 2018年2月22日,从年中醒过来了,。昨天学习内容如下:
读串口收发的代码,感觉代码已经比较容易理解了,但是自己应该写不出来。接下来是继续读代码还是自己开始练,有点迷惑。
2018年2月23日,昨天的学习内容如下:
飞行器姿态解算的基础知识点:
旋转矩阵、点反演、右手坐标系、四元数、 2018年2月24日,昨天学习内容如下:
在板子上按照代码模拟了PWM驱动电机实验。看着代码不难理解,有一个疑惑,学习心得开发板,难度只在**代码? 2018年2月25日,昨天学习内容如下:
ADC与DMA的实验:AHB、APB详解:参考网站blog.csdn.net/yu132563/article/details/53440590 2018年2月26日:
昨天看姿态算法,比较头疼。想请教大佬们,学习这个算法什么方法比较好?