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

[复制链接]
657|43
 楼主 | 2018-2-5 08:04 | 显示全部楼层 |阅读模式
本帖最后由 8677343898 于 2018-2-5 08:07 编辑

从今天开始,每天发学习进程。小白鸟本人用的是烈火狂龙大神的飞行器组件。本人今年大四了,想把这个无人机当做毕设来做,欢迎各位大鹏鸟指导
 楼主 | 2018-2-5 19:53 | 显示全部楼层
本帖最后由 8677343898 于 2018-3-6 09:19 编辑

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

  2. #define LED2_GPIO GPIOB
  3. #define LED2_Pin  GPIO_Pin_3
  4. #define LED3_GPIO GPIOC
  5. #define LED3_Pin  GPIO_Pin_13


  6. #define LED2_ON                        LED2_GPIO->BRR        = LED2_Pin;
  7. #define LED2_OFF                LED2_GPIO->BSRR = LED2_Pin;
  8. #define LED3_ON                        LED3_GPIO->BSRR = LED3_Pin;
  9. #define LED3_OFF                LED3_GPIO->BRR  = LED3_Pin;

  10. static void delay(uint16_t n)
  11. {
  12.         uint16_t i,j;
  13.         for(i=0;i<n;i++)
  14.         for(j=0;j<n; j++);
  15. }

  16. int main(void)
  17. {
  18.        <font color="#ff0000"> void LED_Init();</font>
  19.         while(1)
  20.         {
  21.                 LED2_ON;
  22.                 delay(1000);
  23.                 LED3_ON;
  24.                 delay(1000);
  25.                 LED2_OFF;
  26.                 delay(1000);
  27.                 LED3_OFF;
  28.                 delay(1000);
  29.         }
  30. }

  31. void LED_Init(void)
  32. {
  33.         GPIO_InitTypeDef GPIO_Structure;
  34.         
  35.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  36.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  37.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
  38.         
  39.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
  40.         
  41.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
  42.         
  43.         GPIO_Structure.GPIO_Pin= LED2_Pin;
  44.         GPIO_Structure.GPIO_Speed=GPIO_Speed_50MHz;
  45.         GPIO_Structure.GPIO_Mode=GPIO_Mode_Out_PP;//
  46.         GPIO_Init(LED2_GPIO,&GPIO_Structure);
  47.         GPIO_Structure.GPIO_Pin= LED3_Pin;
  48.         GPIO_Structure.GPIO_Speed=GPIO_Speed_50MHz;
  49.         GPIO_Structure.GPIO_Mode = GPIO_Mode_Out_PP;
  50.         GPIO_Init(LED3_GPIO,&GPIO_Structure);
  51. }
复制代码


暂时还未解决。------------------------------------------------------------------------------------------------------------------------
解决了。犯了个智障的错误。见代码上标红的地方。声明了函数却没有使用。Dammit
 楼主 | 2018-2-5 20:03 | 显示全部楼层
另外,STM32总共有48个引脚,但是有五个GPIO端口,每个端口又说有15个引脚,引脚不是莫名其妙的多了?
 楼主 | 2018-2-6 07:04 | 显示全部楼层
2018年2月6日。通过昨天晚上的学习,发现是代码出错了。但是,具体哪里错了,没有找到。找到正确的代码后飞行器上的调试正常,今天学习方式作出调整,根据代码学习STM32
 楼主 | 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();等内容。
昨天学习内容较少,存在浪费时间的现象。今天要做到,兼职、学习动态结合,充分利用时间。
 楼主 | 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
 楼主 | 2018-2-9 08:23 | 显示全部楼层
2018年,2月9日。今天很尴尬,登录帐号提示,异地登录,请用手机验证码登录。输入手机号,又提示手机未注册,(明明注册了)。退回到登录界面,选着用手机验证码登录,又可以了,网站是不是出毛病了?
好了,没时间了,说下昨天的学习内容。基本了解的GPIO口的设置,通过GPIO->BRR、和GPIO->BSRR设置接口状态,点亮的LED灯。看了两眼USART的介绍。这个USART是不是就是串口?
 楼主 | 2018-2-10 07:19 | 显示全部楼层
2018年2月10日,昨天学习内容为:
阅读,STM32串口驱动代码。在板子上用SWD就扣调试的时候,发现电脑端读不到串口,上网查了下,貌似,SWT和USART不一样,又把USRT焊上针脚。但是发现J-link上的标识符和USRT的引脚标识符对不上号。天那,又被定到这里了。。。。。又卡壳了,引脚对不上号,也不敢用板子调试,生怕芯片坏了。过年了,又买不到。今天又有的忙了。。。
 楼主 | 2018-2-11 07:44 | 显示全部楼层
2018年2月11日,昨天的学习内容如下:
知道了,SWD和USART不一样,USART_InitTypeDef结构体初始化结构体,USART_TypeDef结构体,定义串口类型,USART1是通过宏定义,直接定义到外围设备地址。STM32串口中的硬件流,STM32的8中IO口模式。串口的初始化函数。
| 2018-2-11 14:28 | 显示全部楼层
帮顶!
| 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是同步异步均可选 
| 2018-2-11 14:30 | 显示全部楼层
8677343898 发表于 2018-2-10 07:19
2018年2月10日,昨天学习内容为:
阅读,STM32串口驱动代码。在板子上用SWD就扣调试的时候,发现电脑端读不 ...

SWD要用到串口?
串口下载是ISP吧
 楼主 | 2018-2-12 07:34 | 显示全部楼层
gujiamao12345 发表于 2018-2-11 14:30
SWD要用到串口?
串口下载是ISP吧

恩恩,是的,我搞错了。我用的J-link,链接开发板下载程序,那个SWD不是串口。需要弄个USB转串口线,连接串口与计算机通信
 楼主 | 2018-2-12 07:49 | 显示全部楼层
2018年2月12日。昨天的学习内容如下:
知道了,中断设置,还有,那个环形发送缓冲区,感觉名字不怎么形象。还有了解了输出数据的各种形式。以HEX的形式、字符的形式等。今天争取把串口这里整完。
另外,昨天有个小疑惑,记下来。中断有限分组设置,和中断服务函数在逻辑上有什么不一样?
 楼主 | 2018-2-13 08:53 | 显示全部楼层
2018年2月13日。昨天,没看书。去串亲戚了
 楼主 | 2018-2-22 07:04 | 显示全部楼层
2018年2月22日,从年中醒过来了,。昨天学习内容如下:
读串口收发的代码,感觉代码已经比较容易理解了,但是自己应该写不出来。接下来是继续读代码还是自己开始练,有点迷惑。
 楼主 | 2018-2-23 07:32 | 显示全部楼层
2018年2月23日,昨天的学习内容如下:
飞行器姿态解算的基础知识点:
旋转矩阵、点反演、右手坐标系、四元数、
 楼主 | 2018-2-24 07:39 | 显示全部楼层
2018年2月24日,昨天学习内容如下:
在板子上按照代码模拟了PWM驱动电机实验。看着代码不难理解,有一个疑惑,学习心得开发板,难度只在记忆代码?
 楼主 | 2018-2-25 08:18 | 显示全部楼层
2018年2月25日,昨天学习内容如下:
ADC与DMA的实验:AHB、APB详解:参考网站blog.csdn.net/yu132563/article/details/53440590
 楼主 | 2018-2-26 07:47 | 显示全部楼层
2018年2月26日:
昨天看姿态算法,比较头疼。想请教大佬们,学习这个算法什么方法比较好?
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /4 下一条

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