cmsis

STM32 HSE unstable frequency

你说的曾经没有我的故事 提交于 2021-02-11 16:36:38
问题 I'm trying to run my Nucleo f401re on 80mhz from HSE int F4xxx::clockInit(int pllM, int pllN, int pllP, int pllQ) { enableHse(); //FLASH CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTEN); FLASH->ACR&= ~FLASH_ACR_LATENCY; FLASH->ACR |= FLASH_ACR_LATENCY_5WS | FLASH_ACR_ICEN | FLASH_ACR_DCEN|FLASH_ACR_PRFTEN; //set HSE as PLL source RCC->PLLCFGR = RCC_PLLCFGR_PLLSRC_HSE; // RCC->CR &= ~(RCC_CR_PLLON); //disable PLL before changes // RCC->PLLCFGR = pllM|(pllN<<6)|(((pllP>>1)-1)<<16)|RCC_PLLCFGR_PLLSRC_HSE

STM32 HSE unstable frequency

别说谁变了你拦得住时间么 提交于 2021-02-11 16:35:51
问题 I'm trying to run my Nucleo f401re on 80mhz from HSE int F4xxx::clockInit(int pllM, int pllN, int pllP, int pllQ) { enableHse(); //FLASH CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTEN); FLASH->ACR&= ~FLASH_ACR_LATENCY; FLASH->ACR |= FLASH_ACR_LATENCY_5WS | FLASH_ACR_ICEN | FLASH_ACR_DCEN|FLASH_ACR_PRFTEN; //set HSE as PLL source RCC->PLLCFGR = RCC_PLLCFGR_PLLSRC_HSE; // RCC->CR &= ~(RCC_CR_PLLON); //disable PLL before changes // RCC->PLLCFGR = pllM|(pllN<<6)|(((pllP>>1)-1)<<16)|RCC_PLLCFGR_PLLSRC_HSE

How do you use CMSIS without an IDE?

二次信任 提交于 2021-02-10 12:15:47
问题 I am working with STM32F103C8T6 and would like to use CMSIS, which is essentially just register definitions and no code, to make my life easier while still staying at a low level. The problem is that I have no idea how to install the library for use on the command line with Makefile. All documentation seems to be bound with a vendor-specific IDE like STM32CubeIDE. I suppose the first thing to do is to download the CMSIS library, which I found on GitHub. However, after unzipping ARM.CMSIS.5.6

UART receive interrupt stops triggering after several hours of successful receive

只愿长相守 提交于 2021-02-07 09:29:30
问题 I am using STM32f4 discovery board connected with xbee to receive temperature data from remote temperature sensor. Code used is CMIS UART example code. I will receive packet data, 1 byte at a time. In other words UART receive interrupt will be called whenever each byte receives. Once I gets the complete packet I will copy the temperature data. My UART callback function works without any issue. But after several hours, UART receive interrupt stops working and UART cannot receive anything.

【STM32H7的DSP教程】第7章 ARM DSP源码和库移植方法(IAR8)

浪子不回头ぞ 提交于 2020-04-07 16:42:02
完整版教程下载地址: http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第7章 ARM DSP源码和库移植方法(IAR8) 本期教程主要讲解ARM官方DSP源码和库的移植以及一些相关知识的介绍。 7.1 初学者重要提示 7.2 DSP库的下载和说明 7.3 DSP库版本的区别 7.4 DSP库的几个重要的预定义宏含义 7.5 DSP库在IAR上的移植(源码移植方式) 7.6 DSP库在IAR上的移植(库移植方式) 7.7 升级到最新版DSP库方法 7.8 简易DSP库函数验证 7.9 总结 7.1 初学者重要提示 IAR请使用8.30及其以上版本,CMSIS请使用5.6.0及其以上版本。 IAR的工程创建,下载和调试方法,在V7用户手册有详细说明: http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 。 7.2 DSP库的下载和说明 下面详细的给大家讲解一下官方DSP库的移植。 7.2.1 DSP库的下载 DSP库是包含在CMSIS软件包(Cortex Microcontroller Software Interface Standard)里面,所以下载DSP库也就是下载CMSIS软件包。这里提供三个可以下载的地方: 方式一:STM32CubeH7软件包里面。

Keil环境的搭建and创建新工程

a 夏天 提交于 2020-02-22 23:54:15
注意:所有文件的路径都不要出现中文!!! 以arm_mdk为例,芯片是STM32F103ZE 本博客仅作学习,不提供软件资源 环境的搭建 软件资源: USB驱动将USB口转成一个.com端口(说法可能有误) 烧录软件,下载 支持包,提供软件支持,在arm_mdk安装完成后,双击等待进度条结束即可 安装包,按步骤安装即可 破解工具,安装完mdk后,以管理员身份运行,在File,License Management,复制第一个选项卡中的CID,打开破解工具(注意音量),选择相应的版本(专业版)、以及软件类型(arm),生成,将生成的LIC复制到选项卡中,添加即可。 创建新工程 需要一个适合内核使用的固件库, 在合适的位置创建一个文件夹(test)作为工程文件夹,再其中创建两个文件夹(user,app)user用来放main函数、中断函数的源文件,app用来放硬件的驱动(可能有误) 将固件库中的Libraries文件夹复制到test下,完成后 将固件库中==.\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template==,图中选中的文件复制到user文件夹中 打开keil,Project,new Project(就是第一个),选中刚刚的文件夹,命名,保存 选择微控制器的型号(STM32F103ZE)

SAM4E单片机之旅——1、LED闪烁之空循环

和自甴很熟 提交于 2020-02-17 13:22:57
最近因为导师要写一本关于SAME4单片机的书籍,而我也作为一个嵌入式的初学者看了这本书。现在也让我写写几个小的程序,做做示例。既然写了文档之类的,就发到博客上来吧。 目前关于这芯片能参考的书籍大概就只有英文手册了。用的板子是 SAM4E16E。 IDE用的是Atmel Studio。既然是学习单片机,就没有使用asf框架,而是直接采用访问寄存器的方法了。 第一个程序就是控制板子上一个LED灯的闪烁了。 一、电路 通过查看电路图,可以发现有一个蓝色的LED灯连接在PA0引脚上。我们可以通过改变PA0输出的电平实现LED灯的闪烁。 二、寄存器的访问和CMSIS 对单片机的操作需要通过对相关寄存器的访问来实现。比如,为调节PA0引脚上的电平,首先我们需要允许PIOA控制PA0引脚。通过查看寄存器说明可知,这只要向相应的PIO使能寄存器(PIO_PER)写入0x01就可以了。同时,也可以查到PIOA的PIO_PER被映射到地址0x400E0E00上了。所以通过如下代码就可以达到目的: /* 假设 unsigned int长度为32位 */ unsigned int* PIOA_PER_p = (unsigned int*)0x400E0E00u; (*PIOA_PER_p) = 0x01; 这样做非常繁琐,而且我们也不能保证unsigned int总是32位长。

新建一个STM32的Keil V5工程

≡放荡痞女 提交于 2019-12-28 00:36:06
1、创建工程目录 目录结构: CMSIS(存放和内核相关的文件) Library(存放STM32F4 标准外设固件库源码文件和对应的头文件) Listing(存放列表文件) Output(存放编译过程中产生的中间文件) Project(存放工程文件) User(存放用户自己定义的源文件) 2、下载STM32的固件库 ST的官网地址: https://www.st.com/content/st_com/zh.html 在搜索框搜索“STM32 standard library” 选择自己要下的处理器系列(我的是STM32F4xx的) 点击获取软件 –> 接受 –>填写邮箱–> 下载 –> 进入邮箱下载 3、创建Keil 工程 Keil版本:Keil V5 5.29.0.0 1.创建新工程 打开keil Project New uVision Project 选择刚刚创建的Project目录,并取好工程名 2.选择目标设备 就是选择所要开发的芯片设备型号,如果找不到可能是Keil版本太旧了点。 可以通过搜索框来找,比较方便。 弹出的运行时环境管理器直接关掉。 3.添加标准固件库文件 现在就要用上刚刚下载的那个固件库了。 将 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include 目录下的所有文件拷贝到 工程目录的CMSIS

【STM32】基础理论知识学习1

孤人 提交于 2019-12-27 04:52:43
0.CMSIS https://baike.baidu.com/item/CMSIS/4082822 ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层(英文原文为:a vendor-independent hardware abstraction layer for the Cortex-M processor series and defines generic tool interfaces--来自ARM官方定义)。 使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。软件的创建被嵌入式行业公认为主要成本系数。通过在所有Cortex-M 芯片供应商产品中标准化软件接口,这一成本会明显降低,尤其是在创建新项目或将现有软件迁移到新设备时。最新版本的CMSIS为5.5.1。 ----- 翻译一下就是,ARM 的Cortex芯片的内核相同,但芯片厂商外设可能不同,所以不同芯片厂商开发的微控制器软件可能不兼容。所以ARM和芯片商建立CMSIS。 1.STM32标准外设库、HAL库、LL库 标准外设库的认识: STM32固件库文件分析

Unable to use CMSIS library in Atollic

空扰寡人 提交于 2019-12-24 22:15:31
问题 I am trying to use CFFT function for my STM32 microcontroller in Atollic TrueStudio. But I am unable to use any of the DSP functions. I get the error - undefined reference to `arm_cfft_f32' and undefined reference to 'arm_cfft_sR_f32_len16'. I don't know what the problem is because it works on Keil. What am I doing wrong? #include "stm32f4xx.h" #include "arm_math.h" #include "arm_const_structs.h" #include "core_cm4.h" #include "math.h" #define TEST_LENGTH_SAMPLES 32 float32_t ffttestip[TEST