精华内容
下载资源
问答
  • STM32F0xxx英文手册(带书签).pdf STM32F0xxx中文手册(带书签).pdf STM32F0xxx Cortex-M0.pdf STM32F030.pdf MCU升级_程序区跳转.pdf 在IAR 6.5下如何将数据存放至flash中.pdf 执行硬件设置以及实现低功耗的STM32 ...
  • Keil.STM32F0xx_DFP.1.4.0 KEIL软件STM32F0系列芯片最新安装包
  • Keil.STM32F0xx_DFP.2.0.0 keil5 STM32F0xx支持文件, 解压缩后安装。
  • STM32CubeF0入门之STM32F0系列_ENV9_20170807.pdf STM32F0xx系列官方固件库驱动库板级支持包使用说明英文版。
  • Keil.STM32F0xx_DFP.2.0.0.zip STM32F0XX-Keil5 支持文件包
  • STM32F0xx时钟配置工具
  • <div><p>CAN development for STM32F0xx family</p><p>该提问来源于开源项目:ARMmbed/mbed-os</p></div>
  • stm32f0_stdperiph_lib_STM32F0xx_StdPeriph_Lib Version 1.3.1
  • 直接双击安装即可,安装成功后在MDK5工程的Device中可以选择STM32F0系列的单片机。 Version: 2.1.0 (2020-05-04) Keil.STM32F0xx_DFP.2.1.0.pack Device support: Updated Cube FW to STM32Cube_FW_F0 V1.11.0. ...
  • stm32f0xx_stdperiph_lib_um(STM32F0标准外设函数库手册)
  • STM32F0中文资料RM0091参考手册STM32F05xxx 先进的ARM 核32 位微控制器简介本参考手册向应用程序开发人员提供关于如何使用STM32F05xxx 微控制器的内存和外设所涉及的全部信息。STM32F05xxx 是一个由不同存储容量、...

    STM32F0中文资料

    RM0091

    参考手册

    STM32F05xxx 先进的ARM 核32 位微控制器

    简介

    本参考手册向应用程序开发人员提供关于如何使用STM32F05xxx 微控制器的内存和外设所涉

    及的全部信息。

    STM32F05xxx 是一个由不同存储容量、封装和外设配备的微控制器组成的微控制器家族。

    关于型号信息、尺寸和器件的电气特性等详细数据请参考对应的数据手册 (datasheet )。

    关于ARM CORTEX ™ -M0 内核的相关信息,请参考Cortex-M0 技术参考手册。

    表 1. 适用产品

    类型 型号

    微控制器 STM32F051x4, STM32F051x6 , STM32F051x8

    相关文件

    ● Cortex-M0 技术参考手册,可以得自:/help/topic/com.arm.doc.

    ddi0432c/ DDI0432C_cortex_m0_r0p0_trm.pdf

    ● STM32F05xxx 数据手册 (datasheets )可得自最近的ST 销售部门。

    April 2012 Doc ID 018940 Rev 1 1

    Documentation conventions RM0091

    目录

    1 文中的约定 31

    1.1 寄存器描述中使用的缩写列表 31

    1.2 有关术语 31

    1.3 可用的外设 32

    2 系统及存储器概述 33

    2.1 系统架构 33

    2.2 存储器组织 35

    2.2.1 介绍 35

    2.2.2 存储器映像和寄存器编址 35

    2.3 内置的SRAM 39

    2.4 闪存存储器概述 39

    2.5 启动配置( Boot configuration ) 39

    3 嵌入式闪存 41

    3.1 闪存主要特性 41

    3.2 闪存功能描述 41

    3.2.1 闪存结构 41

    3.2.2 读保护 42

    3.2.3 Flash 写和擦除操作 43

    3.3 存储保护 48

    3.3.1 读保护 48

    3.3.2 写保护 50

    3.3.3 选项字节的写保护 51

    3.4 Flash 中断51

    3.5 Flash 寄存器描述 51

    3.5.1 Flash 访问控制寄存器 (FLASH_ACR ) 51

    3.5.2 Flash 关键字寄存器 52

    3.5.3 Flash 选项关键字寄存器(FLASH_OPTKEYR) 53

    3.5.4 Flash 状态寄存器(FLASH_SR) 53

    3.5.5 Flash 控制寄存器(FLASH_CR) 54

    3.5.6 Flash 地址寄存器(FLASH_AR) 55

    3.5.7 选项字节寄存器(FLASH_OBR) 56

    3.5.8 写保护寄存器(FLASH_WRPR) 57

    3.6 Flash 寄存器镜像 57

    2 Doc ID 018940 Rev 1

    RM0091

    展开全文
  • STM32F0单片机快速入门一: ARM架构与STM32F0 1.ARM架构简单介绍 市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。 从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, ...

                          STM32F0单片机快速入门一: ARM架构与STM32F0

    1.ARM架构简单介绍

    市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。

    从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。

    最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:

    A(Applications) 高性能,一般需要运行Linux等操作系统。

    R(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。

    M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。

    ARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:

    ARMv8-A

    高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。

    典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。

    ARMv8-M

    针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。

    典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。

    ARMv7-A

    支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。

    典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。

    ARMv7-R

    支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。

    典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。

    ARMv7-M

    只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。

    典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。

    ARMv6-M

    ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。

    典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。

    ARMv5 及以前版本

    早期架构,已不推荐使用。

    典型芯片:

    ARM926 (ARMv5)

    ARM7TDMI (ARMv4)

    2.STM32F030芯片简介

    STM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。

    同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。

    3.开发版

    硬件可以选用官方的 NUCLEO-F030R8

     

    如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。

    上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。

    4.集成开发环境(IDE)

    对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。

    Arm Keil MDK for STM32F0, STM32L0 and STM32G0

    这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。

     

    5.软件代码

    ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。

    对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:

     

    之后的文章我们将从开发环境建立,启动代码,到各个模块如何使用。

    在下面的网址可以找到现在所有的ARM内核:

    https://www.arm.com/products/silicon-ip-cpu

    ST的官方中文站点:

    https://www.stmcu.org.cn/

    参考资料:

    STM32F030RM

    ARM®v6-M Architecture Reference Manual

    ARM®v7-M Architecture Reference Manual

    Arm®v8-M Architecture Reference Manual

    欢迎扫描下方二维码,关注我们:

    另有微信交流群,感兴趣加入的小伙伴请添加下方个人微信,之后拉你入群

    展开全文
  • STM32高速串口通信DMA收发实现 测试平台 平台 晶振 BSP库 串口 STM32F030C8T6 12MHz 标准库 UART1、UART2 STM32F103ZET6 8MHz 标准库 UART1、UART2 ... 实现功能 收/发环形缓冲区 不定长度...
  • 从STM32F1向STM32F0移植项目
  • STM32F0 STM32F1 区别与移植
  • stm32f0固件库

    2017-09-21 14:10:11
    stm32f0系列,包括stm32f030、stm32f051等固件库 ,比较好用 stm32f0系列,包括stm32f030、stm32f051等固件库 ,比较好用
  • stm32f0 gcc

    2019-04-13 12:05:25
    linux arm gcc noneabi stm32f0-master..
  • stm32f0-4固件包,库文件。stm32f0-4固件包,库文件。stm32f0-4固件包,库文件。stm32f0-4固件包,库文件。stm32f0-4固件包,库文件。stm32f0-4固件包,库文件。stm32f0-4固件包,库文件。stm32f0-4固件包,库文件。...
  • GPIO口 介绍: 4 个 32 位 配 置 寄 存 器 GPIOx_MODER:模式配置寄存器 ...GPIOx_OTYPER:输出模式配置寄存器 ...2 个 32 位数据寄存器 ...1 个32 位置位 / 复位寄存器 ...A和B还含有2个32位替代功能寄存器

    GPIO口

    介绍:

    4 个 32 位 配 置 寄 存 器

    GPIOx_MODER:模式配置寄存器

    GPIOx_OTYPER:输出模式配置寄存器

    GPIOx_OSPEEDR:输出速度寄存器

    GPIOx_PUPDR:上拉下拉选择

    2 个 32 位数据寄存器

    GPIOx_IDR:输入寄存器

    GPIOx_ODR:输出寄存器

    1 个32 位置位 / 复位寄存器

    GPIOx_BSRR

    A和B还含有1个32位锁定寄存器

    GPIOx_LCKR

    A和B还含有2个32位替代功能寄存器

    GPIOx_AFRH :复用功能寄存器

    GPIOx_AFRL :复用功能寄存器

    GPIO口可以配置成如下模式:

    ● 浮空输入

    ● 上拉输入

    ● 下拉输入

    ● 模拟输入

    ● 具有上拉或下拉能力的开漏输出

    ● 具有上拉或下拉能力的推挽输出

    ● 复用功能且具有上拉或下拉能力的推挽输出

    ● 复用功能且具有上拉或下拉能力的开漏输出

    注意事项:

    1:所有端口都有外部中断能力。 为了用做外部中断口线, 端口线必须配置为输入模式

    2:对于 GPIOx_ODR 中的每位, 在GPIOx_BSRR 中有两位与之对应: BS(i) 和 BR(i)。 当对位

    BS(i) 写1时则设置相应的 ODR(i) 位。 当对 BR(i) 写1时, 则复位相应的 ODR(i) 位。

    3:为了写 GPIOx_LCKR 寄存器, 须发出一个特定的写 / 读序列。 当正确的锁定序列作用于这个

    寄存器的位 16 时, LCKR[15:0] 的值用来锁定 I/O 口的配置

    配置过程:

    void GPIOConfigure( void )

    {

    GPIO_InitTypeDef gpio_init_structure;

    gpio_init_structure.GPIO_Mode = GPIO_Mode_OUT; //输出模式

    gpio_init_structure.GPIO_Speed = GPIO_Speed_50MHz; //输出速度

    gpio_init_structure.GPIO_Pin = GPIO_Pin_0; //引脚

    gpio_init_structure.GPIO_PuPd = GPIO_PuPd_UP; //上拉模式输出

    gpio_init_structure.GPIO_OType = GPIO_OType_PP; //推挽模式输出

     

    GPIO_Init(GPIOA,&gpio_init_structure);

    }

     


    #define GPIOA_SET_BIT0 GPIO_SetBits(GPIOA,GPIO_Pin_0)//置位

    #define GPIOA_RSET_BIT0 GPIO_ResetBits(GPIOA ,GPIO_Pin_0)//复位

    #define GPIOA_RDIN_ALL GPIO_ReadInputData(GPIOA)

    #define GPIOA_RDIN_BIT0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)

    #define GPIOA_RDOUT_ALL GPIO_ReadOutputData(GPIOA)

    #define GPIOA_RDOUT_BIT0 GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)

     

    上面是相应的读取和写入函数,看函数名就可以理解此函数的功能

     

    int main(void)
    {
            //
            unsigned long i;
    
           
            //
            RCC->AHBENR    |= 1 << 17;                 // 开启GPIOA外设时钟
            GPIOA->BSRR     = 0xFFFF;                // 清除全部端口
            GPIOA->MODER   |= 1 << 2;                // 配置PA1 通用输出模式
            GPIOA->OTYPER  &= 0xFFFD;                // 配置PA1 推挽输出
            GPIOA->PUPDR   &= 0xFFFFFFF3;        // 配置PA1 没有上下拉
            GPIOA->OSPEEDR &= 0xFFFFFFFF;        // 配置PA1 输出低速模式
           
            i = 2000000;
            //
            while(1)
            {
                    //
                    if(i > 1000000)
                            GPIOA->BSRR = 1 << 1;
                    else
                            GPIOA->BSRR = 1 << 17;
                    if(i == 0)
                            i = 2000000;
                    else
                            i--;
    //               
                    //
            }
            //
    }
    

     

     

     

    void I2C_MyInit(void)
    {
    	  GPIO_InitTypeDef   GPIO_InitStructA;
    
    	
    	  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOF,ENABLE);  
    
    //I2C模拟
        GPIO_InitStructA.GPIO_Pin =SCL_GPIO|SDA_GPIO;
        GPIO_InitStructA.GPIO_Mode = GPIO_Mode_OUT;	      //GPIO_Mode_IN)输入   (GPIO_Mode_OUT) 输出    GPIO_Mode_AF第二功能   (GPIO_Mode_AN)模拟
    	  GPIO_InitStructA.GPIO_OType=GPIO_OType_PP;       //GPIO_PuPd_NOPULL(不拉),GPIO_PuPd_UP(上拉),GPIO_PuPd_DOWN(下拉)
        GPIO_InitStructA.GPIO_Speed= GPIO_Speed_50MHz;	
      	GPIO_Init(GPIOA, &GPIO_InitStructA);
    		GPIO_SetBits(GPIOA,SCL_GPIO|SDA_GPIO); 	//PA0,PA2输出高
    }
    void SDA_IN(void)
    {
    	  GPIO_InitTypeDef   GPIO_InitStructA;
    
    	
    	  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOF,ENABLE);  
    
    //I2C模拟
        GPIO_InitStructA.GPIO_Pin =SDA_GPIO;
        GPIO_InitStructA.GPIO_Mode = GPIO_Mode_IN;	      //GPIO_Mode_IN)输入   (GPIO_Mode_OUT) 输出    GPIO_Mode_AF第二功能   (GPIO_Mode_AN)模拟
    	  GPIO_InitStructA.GPIO_PuPd=GPIO_PuPd_NOPULL;       //GPIO_PuPd_NOPULL(不拉),GPIO_PuPd_UP(上拉),GPIO_PuPd_DOWN(下拉)
      	GPIO_Init(GPIOA, &GPIO_InitStructA);
    }
    
    void SDA_OUT(void)
    {
    	  GPIO_InitTypeDef   GPIO_InitStructA;
    	  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOF,ENABLE);  
    
    //I2C模拟
        GPIO_InitStructA.GPIO_Pin =SDA_GPIO;
        GPIO_InitStructA.GPIO_Mode = GPIO_Mode_OUT;	      //GPIO_Mode_IN)输入   (GPIO_Mode_OUT) 输出    GPIO_Mode_AF第二功能   (GPIO_Mode_AN)模拟
    	  GPIO_InitStructA.GPIO_OType=GPIO_OType_PP;       //GPIO_PuPd_NOPULL(不拉),GPIO_PuPd_UP(上拉),GPIO_PuPd_DOWN(下拉)
        GPIO_InitStructA.GPIO_Speed= GPIO_Speed_50MHz;	
      	GPIO_Init(GPIOA, &GPIO_InitStructA);
    
    }

     

    展开全文
  • STM32F0例程

    2019-03-13 08:49:18
    STM32F0 测试例程 包含常用的外设驱动 包含标准库函数
  • stm32F0例程

    2018-05-22 16:23:56
    stm32f0系列官方历程,包括F0系列所以MCU,以及各种模块例程
  • STM32F0中文资料

    2018-05-21 16:24:46
    STM32F0中文资料,本参考手册向应用程序开发人员提供关于如何使用 STM32F0xxx 微控制器的内存和外设所涉 及的全部信息。
  • STM32F0xx的库

    2021-01-14 13:50:25
    Keil MDK STM32系列 PACK包中关于STM32F0xx的库
  • Keil.STM32F0 stm32开发用的pack
  • 1. 前言ST官方提供的USB库STM32F0x2_USB-FS-Device_LibV1.0.0 是基于标准库的,适用于STM32F0x2系列MCU,但是对于STM32F070来说,就需要稍作修改,本文就一直到STM32F070作一个笔记。2. 移植从STM中文官网上下载STM...

    1. 前言

    ST官方提供的USB库STM32F0x2_USB-FS-Device_LibV1.0.0 是基于标准库的,适用于STM32F0x2系列MCU,但是对于STM32F070来说,就需要稍作修改,本文就一直到STM32F070作一个笔记。

    2. 移植

    从STM中文官网上下载STM32F0x2 USB库,地址:http://www.stmcu.org/document/detail/index/id-214961。用MDK打开,首先在Manager Project Items下的Project Targets下新增一项 “STM32F070”:

    然后切换到”STM32F070”这个Target: 。此后对所有工程属性的修改都会使用于“STM32F070”,而不再是原先的“USBD_HID-STM32072B-EVAL”了。

    接下来修改device为STM32F070RB:

    工程配置弄好了后,接下来我们来修改代码部分。

    首先我们来编译一下工程,发现此时是可以编译通过的。但是烧录到STM32F070的板子里(这里使用ST的NUCLEO-F070RB板)去时却不能成功运行。

    STM32F072与STM32F070这两个MCU都有USB,且此IP没有什么不同,那么差异是什么呢?

    对比它俩的时钟树:

    如上图是STM32F072的时钟树,可知STM32F072是有一个内部48M的晶振,这个晶振是专门给USB提供时钟的。

    如上图是STM32F070的时钟树,对比STM32F072,发现STM32F070是没有那个48M内部晶振的,因此在给USB提供晶振时,需要使用到外部晶振,于是,在代码处找到设置晶振的代码进行修改:

    usb_bsp.c 的USB_BSP_Init函数内:

    RCC_HSEConfig(RCC_HSE_Bypass);

    /* Wait till HSE is ready */

    while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET)

    {}

    /*Config the PREDIV for RCC_CFGR2*/

    RCC_PREDIV1Config(RCC_PREDIV1_Div1);

    /*HSE/PREDIV selected as PLL input clock*/

    RCC_PLLConfig(RCC_PLLSource_PREDIV1,RCC_PLLMul_6);

    /* Enable PLL */

    RCC_PLLCmd(ENABLE);

    /* Wait till PLL is ready */

    while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

    {}

    /*use the PLLCLK as system input clock*/

    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

    /* Wait till PLL is used as system clock source */

    while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL)

    {

    }

    RCC_HCLKConfig(RCC_SYSCLK_Div1);

    RCC_PCLKConfig(RCC_HCLK_Div1);

    /* Configure USBCLK from PLL clock */

    RCC_USBCLKConfig(RCC_USBCLK_PLLCLK);

    在usb_conf.h头文件中注释掉一些宏:

    //#include "stm32072b_eval.h"

    ...

    //#ifdef USE_STM32072B_EVAL

    /* When using STM32072B_EVAL board the internal pullup must be enabled */

    #define INTERNAL_PULLUP

    //#endif

    ...

    //#define USB_DEVICE_LOW_PWR_MGMT_SUPPORT   //关掉低功耗管理

    ...

    //#define USB_CLOCK_SOURCE_CRS          //STM32F070下是没有CRS的

    接下来整理一下systick:

    void SysTick_Handler(void)

    {

    #if 0

    uint8_t buf[4] ={0,10,10,0};

    USBD_HID_SendReport (&USB_Device_dev,

    buf,

    4);

    #endif

    //#if 0

    //  uint8_t *buf;

    //

    //  /* Get Joystick position */

    //  buf = USBD_HID_GetPos();

    //

    //  /* Update the cursor position */

    //  if((buf[1] != 0) ||(buf[2] != 0))

    //  {

    //    /* Send Report */

    //    USBD_HID_SendReport (&USB_Device_dev,

    //                         buf,

    //                         4);

    //  }

    //#endif

    TimingDelay_Decrement();

    }

    这个是延时函数:

    void HAL_Delay(__IO uint32_t nTime)

    {

    TimingDelay = nTime;

    while(TimingDelay != 0);

    }

    /**

    * @brief  Decrements the TimingDelay variable.

    * @param  None

    * @retval None

    */

    void TimingDelay_Decrement(void)

    {

    if (TimingDelay != 0x00)

    {

    TimingDelay--;

    }

    }

    修改下systick的间隔时间:

    在usbd_usr.c文件中的:

    void USBD_USR_Init(void)

    {

    /* SysTick used for periodic check mouse position */

    SysTick_Config(SystemCoreClock /1000);

    }

    最后在main函数内定时发送HID消息:

    int main(void)

    {

    uint8_t buf[4] ={0,10,10,0};

    /*!

    this is done through SystemInit() function which is called from startup

    file (startup_stm32f072.s) before to branch to application main.

    To reconfigure the default setting of SystemInit() function, refer to

    system_stm32f0xx.c file

    */

    /* The Application layer has only to call USBD_Init to

    initialize the USB low level driver, the USB device library, the USB clock

    ,pins and interrupt service routine (BSP) to start the Library*/

    USBD_Init(&USB_Device_dev,

    &USR_desc,

    &USBD_HID_cb,

    &USR_cb);

    while (1)

    {

    #if 1

    USBD_HID_SendReport (&USB_Device_dev,

    buf,

    4);

    //delay

    HAL_Delay(1000);

    #endif

    }

    }

    这样代码部分就完成了,通过以上main函数的代码可知,我们是每隔1S向PC端发送一次鼠标消息,鼠标会向右下角移动10个像素。

    最后在NUCLEO板上测试OK!

    更多资源地址:www.makeru.com.cn/?t=12

    展开全文
  • STM32 ISP工具 串口下载 串口调试工具 STM32F4STM32 ISP 软件_支持STM32F4/STM32F2/STM32F1 STM32F0 本程序使用VC2010写的,运行前请先安装Microsoft .NET Framework 4 可到微软官方网站下载,下载地址 ...
  • 中断名: 源文件:stm32f0xx.h 宏定义: NonMaskableInt_IRQn HardFault_IRQn SVC_IRQn PendSV_IRQn SysTick_IRQn WWDG_IRQn
  • STM32F0工程库

    2018-12-29 20:14:22
    STM32F0xx_StdPeriph_Lib_V1.5.0.rar是STM公司推出的1.5版本的32F0xx库函数,可以直接调用使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,414
精华内容 1,765
关键字:

stm32f0