cube建立工程,cubemx起到的作用相当于在使用标准库时的初始化工作 cube使用模板流程1.选芯片 2.swdio,swclk引脚设置 3.时钟设置,中断设置(不要忘记勾选RXIT LINE...来使能和设置中断优先级) 4.在code generator中genrator files中勾选Generate peripheral。。。 5.填项目名字,改位置 6.改ide 选mdk5 mdk5中将工程添加自己编写的文件夹 1.在MDK-ARM文件夹外,新建自己的文件夹,里面新建inc和src 2.右键记事本形式打开mdk5工程文件 3.crtl+f找到Ctrl+c复制的Application/MDK-ARM的位置,在其旁边添加 <Group>
<GroupName>自定义</GroupName>
</Group> 4.在c/c++中将inc的目录添加进去 5.勾选output中产生hex,和debug中flash down中reset and run 6.在自定义中添加.h文件,用新建然后保存到inc中,在自定义中添加.h文件,右键点击左侧的自定义文件夹,添加新的文件,将位置改为src中 7.引脚定义和全局变量都在main.h中,每个驱动的头文件都引用main.h和 #include "stm32f0xx_hal.h" main.h中#include "stdint.h" 加上 typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8; typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8; main函数中用到的头文件写在main.c中 8.注意代码要写在相应的区域内,否则用cubemx修改工程时会被改掉,while中的大循环写在while(1)下和/* USER CODE END WHILE */上的中间 引脚输出都用宏定义 9.main函数中只放应用的执行函数,形式是void(void)这种,定义在触发动作的驱动中定义 10.定时器和串口接收中断一定要在记得一般在while大循环开始前开启,HAL库不会自动开启这两个中断,定时器的中断还可以用函数关闭,串口接收的中断,接收一次会自动关闭,所以要在接收一次后再打开它 11.中断里设置的值,刚设完就被改变,可能是在主函数大循环中或者其他中断中又被改了
|