OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3976|回复: 7

求助GPIO 軟體仿真

[复制链接]

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
发表于 2013-12-18 19:56:28 | 显示全部楼层 |阅读模式

請問我現在使用GPIOC 做0 , 1輸出,
我在用keil C 軟體仿真LED1有輸出波形,但OUT1&OUT2沒有。
請問我的程序有設置錯嗎?

以下是我的程序

[mw_shl_code=c,true]#define LED1 PBout(12) #define OUT1 PCout(0) #define OUT2 PCout(1) void OutputPin_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin =GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_All); GPIO_InitStructure.GPIO_Pin =GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_12); } void Cylinder_Init(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); TIM_TimeBaseStructure.TIM_Period = 999; TIM_TimeBaseStructure.TIM_Prescaler =71; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); TIM_ITConfig(TIM4,TIM_IT_Update|TIM_IT_Trigger,ENABLE); NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 4; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //TIM_Cmd(TIM4, ENABLE); } void TIM4_IRQHandler(void) { if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM4, TIM_IT_Update ); CylinderCount++; LED1=!LED1; } } int main(void) { SystemInit(); delay_init(72); NVIC_Configuration(); OutputPin_Init(); InputPin_Init(); Cylinder_Init(); delay_ms(10); // Data_Init(); TIM_Cmd(TIM4, ENABLE); while(StartCount!=EndCount||StartCount==0) { if(lSolenoidVSTB[1]==CylinderCount-1) { OUT1=1; StartCount++; } if((lSolenoidVSTB[1]+lSolenoidVDB[1])==CylinderCount) { OUT1=0; EndCount++; } if(lSolenoidVSTB[2]==CylinderCount-1) { OUT2=1; StartCount++; } if((lSolenoidVSTB[2]+lSolenoidVDB[2])==CylinderCount-1) { OUT2=0; EndCount++; } delay_ms(1); } TIM_Cmd(TIM4, DISABLE); while(1){}[/mw_shl_code]


 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-18 21:20:36 | 显示全部楼层
回复【楼主位】ChrisLiu1017:
-----------------------------
怀疑你的while循环,里面if条件没有得到满足,建议直接测试,不要去if判断了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
 楼主| 发表于 2013-12-19 08:18:04 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
謝謝,原子哥回覆.
裡面if有滿足有確認了,StartCount & EndCount都有++
而且我有把OUT1 & OUT2 直接測試,也是沒有..
我直接OUT1=1; OUT2=1, delay_ms(500); OUT1=0; OUT2=0;
也沒有波形產生。
回复 支持 反对

使用道具 举报

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
 楼主| 发表于 2013-12-19 11:53:48 | 显示全部楼层
回复【3楼】ChrisLiu1017:
---------------------------------
我將OUT1腳位改成PBout(13),OUT2腳位改成PBout(14),
波形是有的,但因為設計上需求所以要使用GPIOC.
幫我看看那裡有寫錯.
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-19 12:08:24 | 显示全部楼层
回复【3楼】ChrisLiu1017:
---------------------------------
上你的完整代码,我测试下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
 楼主| 发表于 2013-12-19 13:26:22 | 显示全部楼层
原子哥我的完整程序

Chris_Project.rar

343.13 KB, 下载次数: 83

回复 支持 反对

使用道具 举报

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
 楼主| 发表于 2013-12-19 13:38:52 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥問題已解決,謝謝.
因為我選用IC 沒有GPIO C
呵呵~~~~後來選用有GPIO C的就可以了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-19 16:17:40 | 显示全部楼层
呵呵。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 09:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表