历史上的今天
今天是:2024年10月18日(星期五)
2019年10月18日 | STM32F103x8B PB3、PB4、PA14、PA15引脚作为普通IO口使用
2019-10-18 来源:eefocus
STM32的PB3、PB4、PA14、PA15引脚可以在使用ISP烧录的情况下释放出来,作为普通IO口使用。
初始化代码如下:
void Gpio_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_4);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_3);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_14);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_15);
}
在实际测试的时候,若发现工程内上述引脚仍无法当做普通IO使用,很可能是上述初始化代码后还执行了GPIOA或GPIOB的时钟使能代码,解决办法为:上面这段初始化代码放在所有IO初始化最后就好了。
问题原因:
当把PB3、PB4、PA14、PA15初始化之后,若再次调用GPIOA或GPIOB端口的时钟使能代码的话,会使得这些引脚变回JTAG或SWD的引脚
即上述初始化完成之后不能再执行:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
否则引脚会变回JTAG或SWD的引脚,而无法作为普通IO使用
注:上述初始化代码把所用引脚均配置为推挽输出,可根据需要自行配置为其他模式
史海拾趣
|
我现在用的是VS2005里面的移动设备下面的Win32编程。想在创建的菜单中放入位图: 首先我用了AppendMenu函数: HMENU hMenu; hMenu = LoadMenu(g_hInst,MAKEINTRESOURCE(IDR_MENU)); AppendMenu(hMen ...… 查看全部问答> |
|
在下面的端口部分,b1,b2,b3到底是输入,还是输出啊??? LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY amp IS PORT ( a1,a2 : IN BIT_VECTOR( ...… 查看全部问答> |
|
各位大侠: 我需要将PCI接口的数据采集卡装到工控机上使用,因此需要将工控机的PC104接口转换为PCI接口。查阅了相关的资料,都说PCI、PC104与ISA总线兼容,但是都没有讲管脚连接方式。各位大侠救我! 只有这么多分,哥哥姐姐救我!… 查看全部问答> |
|
有关uclinux串口通讯?内核有问题?只能发,不能收????? arm7 s3c44b0x,装入了uclinux操作系统 ,调试控制是用的telnet 板上com1口,为系统标准输出 pc机上通过minicom可以接收到由com1口打印输出的信息, 通过minicom可以输入命令(如ls ,ps等)来操作uclinux 我想问的是,既然com1口可以读写 ...… 查看全部问答> |
|
在调试中,发现有时有类似STM32没有复位,而系统无法启动的现象,包括使用STM32自身的复位电路和外接复位芯片。按理说,这种问题是不应该发生的。 进一步的调试发现,若断开VBAT,再接上,系统就无法启动。 是否由于RTC的问题会导致系统无法 ...… 查看全部问答> |
|
大家好,小弟碰到个棘手问题想求教各位高人。我用S3C6410开发板的外部中断EINT1,在驱动里面我用KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_EINTIrq, sizeof(g_EINTIrq), &g_EINTSysIntr, sizeof(g_EINTSysIntr), NULL),其中g_EINTIrq=1 ...… 查看全部问答> |
|
TI Sitara入门笔记4- AM335X EVM SK Android应用指南 AM335X EVM SK Android Devkit 指南 EVM sk 功能 功能 处理器 AM335x 720 MHz 显示 4.3\"液晶触摸屏显示内存 256 MB DDR3Wi-Fi 集成的 WLAN 802.11 b/g/n蓝牙 与 EDR BT2.1USB 高速 2.0 OTG 与调试 uart 多路传输音频 立体声音 ...… 查看全部问答> |




