STM32F10x系列的MCU复位后,PA13/14/15 以及PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。
JTAG对应IO
JTMS --> PA13
JTCK --> PA14
JTDI --> PA15
JTDO --> PB3
JNRST --> PB4
SWD对应IO
SWDIO --> PA13
SWCLK --> PA14
由对应IO关系可以看出,SWD只需用到PA13/JTMS、PA14/JTCK两根线,NREST可以接可不接,而剩下的PB4/JNTRST、PB3/JTDO和PA15/JTDI就可以当做普通IO使用,但是这三个口当做普通IO使用时需要先配置。
void GPIOInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
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);//PB3/4
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);//PA15
}
关键字:STM32 JTAG口 普通IO
引用地址:
STM32之JTAG口作为普通IO使用
推荐阅读最新更新时间:2024-11-11 19:09
STM32之SPI串行线与HC595使用
/* 名称:STM32之SPI串行线与HC595使用 说明: SPI:串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、 LCD 等设备与 MCU 间,要求通讯速率较高的场合。对于SPI来说,其使用主要有四根线:分别是CS、MOSI、MISO、CLK;其中片选线CS,一般用普通的GPIO口来代替。 其次,SPI是全双工通信线路,其发送的时候同时也在接收着。因此要注意发送的时候接收的数据是否是垃圾数据。 就我理解,SPI一般用于外围的部件中,如FLASH、ADC、LCD和MCU。这些部件一般都包含了SPI接口,方便和主机进行通信。但是也有用于普通的串行线,用于一般的串行传输中。如此处的和HC59
[单片机]
STM32项目中遇到的一些问题以及解决办法
USART: 1.问题描述:使用中断接收数据时,DR中数值正确,但是RXNE始终是0,没有置位。 solution:经过半天的检查以后,发现在中断函数中使用错了一个函数,应该使用USART_GetFlagStatus(USART1, USART_IT_RXNE)来判断RXNE状态,却错使用了USART_GetITStatus函数。 2.问题描述:进入IDLE中断无法退出 solution:清除IDLE的方式不对,正确的清除方式见《stm32中文参考手册》P540 由软件序列清除该位(先读USART_SR,然后读USART_DR) 注意:IDLE位不会再次被置高直到RXNE位被置起(即又检测到一次空闲总线),
[单片机]
关于STM32的USART的使用(一)--- 初始化过程
串口的使用过程,无非是正确的配置它的IO口的模式,然后在使用函数进行数据的发送或者接受。那么先来说一下STM32的串口初始化配置需要的过程吧。 贴一段代码,作为例子。(据我的理解,不管是M几的核,只要将下面这几个配置好,串口的IO模式就配置好了。) void uart_init(u32 bound) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB
[单片机]
STM32移植lwip之硬件连接
一直以来都想写一些帖子和博客,但对于刚毕业迷茫的我就是狠不下心来,一番准备之后,决定把前几天学习的一些东西写下来,作为一个记录的开始。 前段日子接触了关于lwip在stm32上面的移植,建立tcp服务器与tcp客户端,以及搭建最简单的web服务器等,我打算分开来一篇篇条理性地记录下来。 stm32建立tcp的硬件基础 每次博客的记录我都想有个目标,以便以后翻阅都能带个目标性地去看。 本篇目标:能够了解stm32的数据是怎么通过网卡和端口连接到PC机的,是建立在哪些硬件基础上的呢? 硬件电路包括: stm32f407zg(MAC) smsc lan9303(PHY) hr681680(网络隔离变压器) rj45(水晶接头
[单片机]
stm32通过i2c存储数据在eeprom
首先我们来认识一下i2c通讯协议 i2c总线只需要串行数据SDA线以及串行时钟SCL线,两条线都是双向的。每个从器件都有一个唯一的地址以便识别。 i2c传输过程:start-从机地址-应答/非应答-R/W(1为读/0为写)-数据传输-应答/非应答-stop 数据传输每个字节都需要应答/非应答信号 模拟i2c传输协议: 根据时序图可以知道:start就是拉高SCL,给SDA下降沿;stop是拉高SCL,给SDA上升沿。 当传输数据时即SCL为高电平期间,SDA上的数据必须保持稳定,只有在SCL上的信号为低电平期间,SDA上的高电平或低电平状态才允许变化。 数据传输一般选择
[单片机]
意法半导体推出新系列STM32微控制器
STM32 H7新系列产品成为ARM Cortex -M内核微控制器性能新标杆 大容量片上存储器,丰富的通信外设,为物联网设备提供先进安全服务 中国,2016年10月21日 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)推出新的运算性能创记录的STM32H7系列微控制器。新系列内置STM32平台中存储容量最高的SRAM(1MB)、高达2MB闪存和种类最丰富的通信外设,为实现让智慧更高的智能硬件无处不在的目标铺平道路。 意法半导体自主研发的非常先进的40nm芯片制造工艺,结合产品架构创新,使新系列产品运算性能大幅提升,将处理
[物联网]
STM32单片机通信协议操作步骤及注意事项
STM32单片机通信协议是一种用于在不同设备之间进行数据传输的协议,它可以帮助设备之间进行高效的通信。STM32单片机通信协议可以用于实现多种不同的应用,如智能家居、智能安防、智能交通等。 STM32单片机通信协议的使用方法主要包括以下几个步骤: 1. 首先,需要确定使用的协议类型,如UART、I2C、SPI等,并确定使用的协议的具体参数,如波特率、数据位、停止位等。 2. 然后,需要在STM32单片机上配置相应的通信接口,并将其与外部设备连接起来。 3. 接着,需要编写相应的程序,实现STM32单片机与外部设备之间的数据传输。 4. 最后,需要将程序烧录到STM32单片机上,并运行程序,实现STM32单片机与外部设备之间的数
[单片机]
关于stm32串口下载的问题
今天在用stm32f103rct6调程序的时候,不知道怎么回事j-link不能下载了,好像还不是驱动的问题,是她彻底坏了,没办法只能用串口下载了,以前没弄过,果然碰壁了。 首先、将boot0置1,boot1置0 其次就是串口的选择问题,注意需要选择串口1进行程序的下载
[单片机]