STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。
有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。具体方法如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//开启AFIO时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能
注意:不要忘记在RCC_Configuration()中开启AFIO时钟
借用正点原子的寄存器操作:
//JTAG模式设置,用于设置JTAG的模式
//mode:jtag,swd模式设置;00,全使能;01,使能SWD;10,全关闭;
//CHECK OK
//100818
void JTAG_Set(u8 mode)
{
u32 temp;
temp=mode;
temp<<=25;
RCC->APB2ENR|=1<<0; //开启辅助时钟
AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
AFIO->MAPR|=temp; //设置jtag模式
}
关键字:STM32 JTAG端口 普通IO口
引用地址:
STM32 JTAG端口作为普通I/O口使用的方法
推荐阅读最新更新时间:2024-03-16 14:43
STM32-点亮LED灯(GPIO配置)
点亮LED灯应该是每一人学习硬件的第一个实验了吧!从51到32在到ARM,废话少说,下面开始使用STM32点亮LED灯。 GPIO:又叫通用输入输出口,是微控制器必不可少的外设单元,用来和外界进行信号传递,数据交互的接口。 STM32的GPIO根据型号的不同分为A-H组,每一组都称为GPIOx组,每组都有独立的寄存器,因为相对于寄存器,函数版的使用还是比较容易入门的,尤其是有些编程基础的人来讲,但是寄存器是不可以忽视的,学会了基础的函数操作还是要回头去看看具体寄存器是如何运行的,这点很重要,高手和菜鸟的区别吧! STM32的GPIO还具有十分强大复用功能,这点以后会介绍和使用到。现在就把它的GPIO当成一个可输出高低电平的引
[单片机]
STM32的ADC输入通道配置
STM32中最多有3个ADC模块,每个模块对应的通道不完全重叠。 下图是STM32F103CDE数据手册中的总框图的左下角,图中可以看出有8个外部ADC管脚分别接到了3个ADC模块,有8个外部ADC管脚只分别接到了2个ADC模块,还有5个外部ADC管脚只接到了ADC3模块,这样总共是21个通道。 下表是这些ADC管脚与每个ADC模块的对应关系,表中可以看出ADC1还有2个内部通道,分别接到内部的温度传感器和内部的参照电压:
[单片机]
STM32的AD不加信号输入也很大
原因:VREF+在原理图并没有连接到网络,导致PCB无此网络,所以外部通道在不加信号时数据很大,而且每次上电并不一定是同一个数。
[单片机]
STM32封装自己的库函数(GPIO初始化)
初始化GPIO 1.确定引脚号 2.确定模式 3.GPIO类型 4.定义上拉或下拉 定义初始化GPIO引脚结构体 typedef unsigned char unit8_t typedef struct { unit32_t GPIO_Pin; GPIOMode_Typedef GPIO_Mode; GPIOOType_Typedef GPIO_OTypde; GPIOSpeed_Typedef GPOI_Speed; GPIO_PuPd_Typedef GPIO_PuPD; }GPIO_InitTypedef; typedef enum { GPIO_Mode_
[单片机]
STM32开发笔记8: STM32CubeF0介绍
单片机型号:STM32CubeF0 本文介绍 STM32CubeF0。 STM32CubeF0 gathers, in a single package, all the generic embedded software components required to develop an application on STM32F0 microcontrollers. In line with the STMCube™ initiative(首创), this set of components is highly portable, not only within STM32F0 Series but al
[单片机]
基于STM32的两轮平衡小车设计
学习一种单片机最快的方式莫过于用它实际制作一个作品了,前些天看到有人在玩平衡小车,感觉非常有趣,于是就决定自己动手制作一个基于stm32的两轮平衡小车。从电路板设计,到程序编写,一步一步的,希望自己在这个过程中有一定的收获。 电路设计的基本过程一般是这样的:需求分析——元件选型——原理图设计——PCB设计——焊接调试。 需求分析:在这里,主要是确定小车需要哪些模块、外设或接口。首先,stm32最小系统是必须的,这是小车控制的核心。然后小车的两个轮子需要两个H桥驱动和编码器接口。需要陀螺仪感知小车的姿态(包括倾角,转向角,角速度等)。 需要一些调试和指示用的外设(蜂鸣器,LED等)。需要电源电路为系统供电。需要电池电压采
[单片机]
STM32之DAC例程
#include stm32f10x.h /* RCC时钟配置 */ void RCC_config() { ErrorStatus HSEStartUpStatus; /* RCC寄存器设置为默认配置 */ RCC_DeInit(); /* 打开外部高速时钟 */ RCC_HSEConfig(RCC_HSE_ON); /* 等待外部高速时钟稳定 */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { /* 设置HCLK = SYSCLK */ RCC_HCLKConfig(RCC_SYSCL
[单片机]
STM32学习笔记——利用通用定时器TIM2进行精确延时
1. 通用定时器概述及性能 1.1 概述 在作者所使用的stm32芯片上,共有TIM1 1个高级定时器以及TIM2、TIM3、TIM4共3个通用定时器。其中各通用定时器均由一个通过可编程预分频器驱动的16位自动装载计数器构成。适用于多种场合,包括测量输入信号的脉冲长度(输入采集)或者产生输出波形(输出比较和PWM)。使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。定时器是完全独立的,而且没有互相共享任何资源。它们可以一起同步操作。 1.2 性能 通用TIMx定时器特性包括: 16 位向上,向下,向上/向下自动装载计数器 16 位可编程预分频器,计数器时钟频率的分频系数为
[单片机]