EEDrone开源四旋翼从零开始(4)--DEMO开发

本贴来详细介绍下Demo工程的开发过程,Demo是完整功能的基础,也可以用来做测试。这里以UART功能DEMO为例,可以从零开始自己编写,也可以参考官方例程,也可以使用cubemx生成。

打开CubeMX,选择STM32F767ZITX芯片或者NUCLEOF767开发版,这两者的差别不大,选择开发板会多一些宏定义,然后在左边的串口3如下设置:

使用外部晶振

时钟设计如下:

串口三配置如下:

CubeMX工程生产设置如下:

最后点击ProjectàGenerate Code生成工程文件。在生成的工程如下:

在EEDrone的Example中新建一个文件夹”UART_Test”

将生成的工程中Src中的文件复制到新建的文件夹中,注意“system_stm32f7xx.c’不要复制,因为都是一样的,这里inc文件夹是可以不复制进来的,因为主工程包含了,最后文件夹文件如下:

然后使用IAR(推荐使用IAR7.7版本)打开工程,在Example上右击àaddàadd group,填写”UART_Test”如下图:

在新建文件夹上右击addàadd file,将刚刚的文件夹中的内容全部选中,点击打开。

然后在”User”文件夹和Example文件夹中其他文件夹都排除编译,在文件夹上右击案后勾上”Eculude from build”,然后ProjectàRebuild all。每次更换Demo都需要重新编译。

编写代码我推荐使用sourceinside,他能写代码的效率提高不少,当然也可以直接使用IAR,或者其他的软件,这个没有什么问题。sourceinside工程的添加方法就不介绍了,这里介绍个插件与小技巧。SI是不支持标签的,这个有时候会非常不方便,可以使用这个sihook插件下载地址:审核中。。。

直接将插件复制到根目录就好,下面是效果图:

由于工程中有很多例子,这也就会导致很多的main.c文件和其他的相同名字文件,给搜索造成干扰。SI可以很方便的添加和去除包含的工程文件,Projectàadd and remove project files

如下图:

现在开始添加代码,首先添加一个全局变量用来存收到的数据:

  1. uint8_t receive;

复制代码

在uart.c中添加如下两段代码:

  1. #ifdef __GNUC__

  2. /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf

  3. set to 'Yes') calls __io_putchar() */

  4. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

  5. #else

  6. #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)

  7. #endif /* __GNUC__ */

复制代码

  1. PUTCHAR_PROTOTYPE

  2. {

  3. /* Place your implementation of fputc here */

  4. /* e.g. write a character to the USART3 and Loop until the end of transmission */

  5. HAL_UART_Transmit(&huart3, (uint8_t *)&ch, 1, 0xFFFF);

  6. return ch;

  7. }

复制代码

然后添加主函数中断接收代码和一个printf发送:

  1. HAL_UART_Receive_IT(&huart3,(uint8_t *)&receive,1);

  2. printf("hello");

复制代码

在main.c主函数外添加一个中断接收回调函数:

  1. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

  2. {

  3. HAL_UART_Receive_IT(&huart3,(uint8_t *)&receive,1);

  4. HAL_UART_Transmit(&huart3, (uint8_t *)&receive, 1, 0xFFFF);

  5. }

复制代码

好啦,大功告成,现在烧录进去后首先会显示“hello”,然后输入什么就会输出什么。如下图:

源码地址:https://github.com/EEDrone/Firmware/tree/V0.01_uart

(0)

相关推荐