1. 引脚
STM32F10x系列的MCU复位后,PA13、PA14、PA15、PB3、PB4 默认为JTAG下载调试功能,不能当做普通IO口使用,有时为了充分利用资源,一般使用SW来下载调试,即只需要PA13、PA14两个引脚即可
PA13 - JTMS/SWDIO
PA14 - JTCK/SWCLK
PA15 - JTDI
PB3 - JTDO
PB4 - JTRST
2. 代码
void jtag_to_io( void ){
GPIO_InitTypeDef GPIO_InitStructure;
/*使能GPIOA GPIOB AFIO(关闭JTAG)*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE );
/*禁用-JTAG , 使能-SW*/
GPIO_PinRemapConfig( GPIO_Remap_SWJ_JTAGDisable,ENABLE );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init( GPIOA,&GPIO_InitStructure );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init( GPIOB,&GPIO_InitStructure );
}
关键字:STM32 JTAG 普通IO口 设置方法
引用地址:
STM32的JTAG用作普通IO口设置方法
推荐阅读最新更新时间:2024-03-16 16:00
STM32+FreeRTOS+CUBEMX_学习笔记(四)按键输入
前言 gpio输入模式也就是简单的读取gpio的电平 操作 1、首先在cube中将gpio设置为输入模式 2、函数讲解: HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin);//这个函数用来读取pin的高低电平值 /** * @brief Read the specified input port pin. * @param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F0 family * @param GPIO_Pin specifies the port bit to read.
[单片机]
STM32——PWM输出总结
学习后发现stm32的定时器功能确实很强大,小总结一下方便以后使用的时候做参考。Stm32定时器一共分为三种:tim1和tim8是高级定时器,6和7是基本定时器,2 5是通用定时器。从名字就可以看得出来主要功能上的差异。今天我主要是用定时器做pwm输出,所以总结也主要是针对pwm方面的。 先大致说下通用和高级定时器的区别。通用的可以输出四路pwm信号互不影响。高级定时器可以输出三对互补pwm信号外加ch4通道,也就是一共七路。 所以这样算下来stm32一共可以生成4*5+7*2=30路pwm信号。接下来还有功能上的区别:通用定时器的pwm信号比较简单,就是普通的调节占空比调节频率(别的不常用到的没去深究);
[单片机]
STM32系统嘀嗒定时器实现1ms中断事件
int main() { //系统定时器实现周期性1000hz中断事件,即1ms SysTick_Config(SystemCoreClock / 1000); } void SysTick_Handler(void) { static uint32_t cnt=0; cnt++;//记500次之后,=500ms,点灯 if(cnt =500) { cnt=0; 灯亮; } } 最大的定时时间: 如果是168MHZ, 2^24 ÷ 168000000=99.86ms
[单片机]
【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)
前言 上一节我们讲解了STM32CubeMX的基本使用和工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了 今天我们会详细的带你学习STM32CubeMX配置外部中断,并且讲解HAL库的GPIO的各种函数,带你学习不一样的STM32 那么话不多说,我们开始正式的讲解吧! 准备工作: 1、STM32开发板(我的是STM32F407ZE和STM32F103RC) 2、STM32CubeMx软件、 IDE: Keil软件 3、STM32F1xx/STM32F4xxHAL库 4、按键管脚 PA11 PB4 5 LED管脚 PC4 PC5 PB0 PB1 1新建工程 1.1New Pr
[单片机]
建立STM32的工程步骤(版本1)
建立STM32的工程步骤(版本1):
[单片机]
STM32 关于外部中断线、中断源和中断服务函数的问题
中断线问题: 上图可以看出,PA0、PB0...PG0共用的EXTI0中断线,PA1、PB2...PG1共用的EXTI1中断线,也就是 编程里面的(如下图库文件),对应16个中断线,后面三个是专用的中断线,不做讨论。 有人要问,假设:我设置的引脚是PB9和PE9都开启外部中断怎么办?小编告诉你,这还真办不了,我实测过。配置函数的时候后覆盖之前的函数的(如下图所示) 如果这样配置的话,会出现出货光电1的初始化覆盖掉编码盘的初始化,说白了就是编码盘的设置被覆盖掉了,结果是外部中断 出货光电1管脚会触发而编码盘就不起作用了,这也是STM32其中一个问题所在吧! 反过来,结果是外部中断 编码盘 管脚会触发
[单片机]
stm32实用篇3: 字符显示字库生成
在使用stm32显示文本时,首先要使用字模软件生成字库,如下: 这里,使用的是Consolas字体,点阵大小为16*16(汉字),此时英文字体的大小为8*16,宽度为汉字字体的一半,然后设置选项参数(包括阴码、逐行扫描、十六进制等),具体配置如下: 然后就可以生成字库,首先生成ASCII字库: 会生成两个文件,即字库 + 索引: 因为ASCII编码表的0 ~ 31是不可见字符,从32(空格)33(感叹号!)...开始才是文本字符,因此为了节省空间,直接删去前面多余不用的不可见字符,操作如下: 删除后: 然后利用PCtoLCD取模软件重新加载txt文件生成字库: 利用WinHex软件打开字库,来看一下
[单片机]
像51一样操作STM32的IO
//----------------------------------------------------------------------------------------------------- //别名区 ADDRESS=0x4200 0000 + (0x0001 100C*0x20) + (bitx*4) ;bitx:第x位 // 把 位段地址+位序号 转换别名地址宏 #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF) 5)+(bitnum 2)) //把该地址转换成一个指针 #define MEM_ADDR(
[单片机]