【可视化家庭环境分析仪】使用ST MEMS传感器套件读取环境数据
[复制链接]
第一次使用M7开发,难度感觉还是有的,需要理解F7中例程给的东西,怎么烧写,下载,然后中间因为其是两层结构,boot和实际的app是分别下载的,所以我还是先看了例程,怎么跑例程的。之后修改下用cube_mx生产了一个自己的app文件。
下面看下我们的板子和修改过程吧。
Arduino接口的东西可以直接接上。
在cube中直接添加我们的传感器包,然后把对应的接口都弄好,这些因为是直接自己弄给的所以都得选择好,在有些ST例程中他是有对应的板级包了,里面包含了很多弄好的东西。
这里生成的工程还不能使用。我们需要对工程进行修改。
在keil中我们需要吧编译器升级使用6,然后就是下面的IROM地址,这个地址就是我们的外部QSPI Flash的地址, RAM使用的还是我们内部的。因为没有图像的原因,所以暂时还不需要进行加载外部SDRAM。
找到我们的SystemInit函数,这里我们需要作为app来使用,重新定义了我们的中断向量表。
/* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
#endif
/* Reset the RCC clock configuration to the default reset state ------------*/
/* Set HSION bit */
RCC->CR |= (uint32_t)0x00000001;
/* Reset CFGR register */
RCC->CFGR = 0x00000000;
/* Reset HSEON, CSSON and PLLON bits */
RCC->CR &= (uint32_t)0xFEF6FFFF;
/* Reset PLLCFGR register */
RCC->PLLCFGR = 0x24003010;
/* Reset HSEBYP bit */
RCC->CR &= (uint32_t)0xFFFBFFFF;
/* Disable all interrupts */
RCC->CIR = 0x00000000;
#if defined (DATA_IN_ExtSDRAM)
SystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSDRAM */
/* Configure the Vector Table location add offset address ------------------*/
#ifdef VECT_TAB_SRAM
SCB->VTOR = SRAM1_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#else
SCB->VTOR = APPLICATION_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation to APPLICATION_ADDRESS in preprocessor defines */
#endif
SCB->VTOR = APPLICATION_ADDRESS | VECT_TAB_OFFSET;这里就是重新定义了,给的历程中再全局宏里面定义了 APPLICATION_ADDRESS
实际的我们只需要添加红框中的宏即可,后面的都是一起其他地方的优化,我们的在cubemx中都直接设定过了的。如后面的系统频率,我们是直接设置好了的。
搞完后代码都会直接生成的,我们的应用函数也都弄好了。
之后就是修改下载的地方,这里我们不能下载到内部flash中了,因为内部flash是作为boot用了。我们需要下载到外部Flash中。
对于boot怎么找,可以找cube下在的F7包,里面有历程,包括出厂的历程都存在的,所以提供的还是比较完善的。包括开机的两个GUI里面都有的。
使用里面例程也需要注意。
有些打开的是用外部SDRAM,程序中没有初始化,这样就会导致不能运行,所以一定选择内部RAM。
完成后打开串口就有信息了。还需注意串口1被修改了。
是PA9和PB7。
|