十万火急 STM32F103VET6引脚上电瞬间输出一个低电平 跪求原子哥解决

2019-08-17 07:16发布

STM32F103VET6引脚驱动光耦,光耦驱动继电器,引脚初始配置为高电平,但是在板子上电的一瞬间会输出一个低电平造成光耦导通继电器一瞬间吸合断开。
参照香主的做法,先配置引脚输出电平,再配置引脚输出模式,还是存在同样的问题。
请高手告知如何解决!!
GPIO初始化代码如下
  GPIO_SetBits(GPIOA,GPIO_Pin_8);                          //³õʼ»¯¶Ë¿ÚÊä³ö1
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);    //ʹÄÜGPIO¶ÔÓ¦GPIOµÄClockʱÖÓ
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;     //ÉèÖÃÏàÓ¦µÄ¶Ë¿Ú
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //ÉèÖÃΪ ÍÆÍì(Push-Pull)Êä³ö                 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;   //×î´óÊä³öËÙ¶ÈΪ10MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);                  //µ÷ÓÃGPIO³õʼ»¯º¯Êý  

20160526093215.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
levon
1楼-- · 2019-08-17 12:39
问题已经解决  将三极管基级电容增加为10uF  相当于添加一个上电延时下图为添加不同电容  光耦两端信号采集图 图一为添加一个0.1uF电容图二为添加10uF的电容
从图中可以看出光耦输出脚状态要比输入状态提前20ms



烟酒不沾
2楼-- · 2019-08-17 12:52
你在GPIO时钟打开之前的操作GPIO有意义吗?把GPIO_SetBits(GPIOA,GPIO_Pin_8); 放在GPIO_Init(GPIOA, &GPIO_InitStructure); 后面,再把三极管的B极那个电容换成10K电阻试试看!
levon
3楼-- · 2019-08-17 15:18
 精彩回答 2  元偷偷看……
钩月黄昏
4楼-- · 2019-08-17 18:27
你看下datasheet这个引脚在上电时默认引脚电平是高还是低?
levon
5楼-- · 2019-08-17 23:39
钩月黄昏 发表于 2016-5-26 09:54
你看下datasheet这个引脚在上电时默认引脚电平是高还是低?

上电时默认为浮空输入状态   
来俩不甜的
6楼-- · 2019-08-18 04:35
硬件加上拉,软件改开漏,就没有问题了

一周热门 更多>