对于初学习者来说为什么用到PB3和PB4时无法控制输出呢?
下面就这一问题进行分析讲解。
首先,STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些
端口设置为普通I/O口。具体方法如下:
在GPIO_Configuration(); // 配置使用的 GPIO 口:
注意:不要忘记在RCC_Configuration()中开启AFIO时钟,
//AFIO时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
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 使能
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
关键字:STM32F10x系列 MCU配置 普通IO口
引用地址:
STM32F10x系列的MCU配置PB3和PB4为普通IO口
推荐阅读最新更新时间:2024-03-16 16:13
超小型的无线收发模块LT8920配置思路+单片机发射接收程序
近来一直在研究无线项目,其中的重点就是无线收发芯片,可以正常的发送接收数据了,无线项目的大难题也就解决了。于是开始收集各种无线收发芯片的资料,例如NRF24L01,CC1101,一些LoRa模块还有一些超外差无线模块等等,但是他们有着相同的问题,一是例如NRF24L01和CC1101之类的使用QFN封装的模块在自制上存在焊接困难度的问题,再就是这些模块普遍都有着过于繁杂的外围电路(一些电感电容),无法将其做到很小的体积。于是在查阅了很多资料后,有一款小巧的无线模块进入我的眼帘,就是LT8920。 先不谈他的各项参数指标相对其他模块有什么优劣,光是这个采用了SSOP16的引脚封装就使得其焊接容易了许多。并且其简洁的外围电路着实易于
[单片机]
使用AVR单片机配置FPGA
Altera公司的ACEX、FLEX等系列的FPGA芯片应用广泛,但其FPGA基于SRAM结构,决定电路逻辑功能的编程数据存储于SRAM中。 由于SRAM的易失性,每次上电时必须重新把编程数据装载到SRAM中,这一过程就是FPGA的配置过程。FPGA的配置分为主动式和被动式。在主动模式下,FPGA上电后主动将配置数据从专用的EPROM(如EPC1,EPC2等)加载到SRAM中。被动模式下,FPGA为从属器件,由相应的控制电路或微处理器控制配置过程,包括通过下载电缆由计算机控制配置和单片机模拟配置时序配置。其中,专用的EPROM价格高,可编程次数少,而计算机配置在现场应用中又很不现实,因此本文提出一种基于AVR单片机的被动配置方式
[单片机]
意法半导体推出新图形用户界面配置器,让STM8微控制器设计变得更快捷
近日,意法半导体最新发布的STM8CubeMX g图形界面配置器让基于深受市场欢迎的8位STM8微控制器的产品设计变得更快捷。下面就随单片机小编一起来了解一下相关内容吧。 STM8CubeMX支持 意法半导体 的全部主流低功耗汽车8位微控制器,新版免费开发工具帮助设计人员从 STM8 产品家族中选择一款最适合其应用需求的产品。设计人员也可直接在 意法半导体 的 STM8 开发板上开发应用。首先,按照所选电路板上的微控制器的配置方式配置这款工具,然后STM8CubeMX提供多个图形界面工具,帮助完成所选微控制器的基本配置。这些配置工具包括冲突自动解决引脚配置器、动态验证时钟树配置器和电源定序器及功耗计算器。配置完成后,该工具将生成一
[单片机]
STM8L151系列单片机PWM配置时注意事项
使用STM8开发环境:IAR for STM8 用TIM1_CH3输出PWM波,输出引脚是PD5 使用的单片机STM8L151 对于STM8L,默认时钟源是关闭的,需要先打开才能配置寄存器 void Time1_Init(void) { CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,ENABLE);//开启TIM1时钟 TIM1_DeInit(); TIM1_TimeBaseInit(1599,TIM1_CounterMode_Up,2000,0); //分频1600,向上计数,TIM1_ARR=20000,重复计数器为0 TIM1_OC3Init(TIM1_OCM
[单片机]
用单片机实现可编程逻辑器件的配置
摘要: 介绍基于SRAM的可重配置PLD的原理;通过对多种串行配置的比较,提出单片机与存储器串行配置方式;从系统复杂度、可靠性和经济性等方面进行比较和分析。
关键词: 复杂可编程逻辑器件 静态随机存储器 被动串行
引言
基于SRAM(静态随机存储器)的可得配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路中PLD的逻辑功能创造了条件。PLD使用SRAM单元来保存配置数据决定了PLD内部的互连和功能。改变这些数据,也就改变了器件的逻辑功能。由于SRAM的数据是易失的,因此,这些数据必须保存在PLD器件以外的EPROM、EEPROM或Flash ROM等非易失存储器
[工业控制]
STM32单片机UART发送配置的步骤及方法
字符发送的过程描述:在UART的发送过程中先将数据输入到发送数据寄存器中(TDR)此时(TXE)被硬件置1,之后TDR寄存器将数据串行移入到发送移位寄存器中,将数据在TX端口发送,此时(TC)被硬件置1。发送与接收是逆过程。 UART发送配置步骤: 1.通过USART_CR1寄存器上置位UE来激活USART。 2.编程USART_CR1的M位来定义字长。 3.在USART_CR2中编程停止位的位数。 4.如果采用多缓冲器通信,配置USART_CR3中的DMA使能位(DMAT)。按多缓冲器通信中的描述配置DMA寄存器。 5.利用USART_BRR寄存器选择要求的波特率。 6. 设置USART_CR1中的TE位,发送一个空闲帧作为
[单片机]
STM8学习笔记---普通IO口模拟串口功能
串口在产品应用中很常见,但是单片机的默认带的串口往往比较少,有时候就会出现串口不够用,所以就想着能不能用普通IO口模拟串口来实现串口的功能。 要模拟串口首先要清楚串口数据传输过程中的原理。 常用的串口格式为 1位起始位,8位数据位,无校验位,1位结束位。起始位为低电平,结束位为高电平。数据0为低电平,数据1为高电平。 所以最简单的串口传输一个字节总共有10个电平变化,每个电平的宽度由波特率决定的。 具体的串口数据分析,可以参考这篇文章:STM8学习笔记---通过示波器分析串口数据。 下面看一个通过波特率如何计算每个位的电平宽度。 发送一个字节,以stm8中9600bit/s的波特率计算的过程为例(1秒钟传输
[单片机]
51单片机普通IO口模拟串口源程序
大家放心用,但是你们程序要好好看看,容易中断冲突,现在我们也在解决中,接收和发送字符串的程序有需要的邮箱给你们发送过去 东西是好东西,我们遇到了中断问题,有点麻烦,数据采集上来后用模拟串口挂到485总线,向一个控制单片机发送数据,用12864显示,但是控制单片机的串口通信的中断和模拟串口中断冲突,上位机和下位机没有办法通信,今天下午实在没有办法了,又做了一块单片机最小系统,让采集板上的数据之间和这块最小系统板进行通信12864上显示,现在还没有想到好的解决办法,等解决之后再告诉大家,还有就是接受字符串的时候,先进行解包,再进行标识位检测,这个程序发程序的方法是一个一个字符发送的,接收的时候要先放进数组里面,要是有需要的可以单独联系
[单片机]