找回密码
 注册
关于网站域名变更的通知
查看: 202|回复: 2
打印 上一主题 下一主题

主函数的语句直接跳过,麻烦帮忙看下程序是哪里出错了

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-2-14 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
#include "STM32f10x_map.h"
4 H( D4 W( s  r( N  w+ P' Evoid Key_Init(void);
6 ~" h9 w0 k6 F$ G" |void Key_Proc(void);4 Y% E; i5 y% F: S& x+ C

. u9 J6 t4 J2 V5 L   char flag = 1;
- W! ]2 E7 w& C9 ?, _  ~( n! c6 l4 gint main(void)' R. C* ~7 m" O0 f9 b: f: ^  Z3 x
{4 D: s2 P2 j8 ]- h/ F8 b
     Key_Init();9 t3 O' o0 I9 A3 @2 I! q0 K
while(1)* M4 @6 T- G- l$ D1 Y2 C' g
   {
7 k& J7 l, @3 U2 }1 P* m1 H
7 O0 e( S5 a* }7 o  T2 I7 y" y   Key_Proc();3 U5 q6 \: y/ p$ ^. E) Q
   if(flag) GPIOC->ODR &= 0xffff;* w: I( b$ \9 X9 G
   if(!flag) GPIOC->ODR &= 0x0000;
0 B* U7 p+ B: s+ l5 X: O7 w+ _- W+ S* r' h! r1 v  X) I/ v1 b& e) r
   }
* t2 p( z$ D$ I* ]. I  {8 f. n5 @: J% Q; _0 \" Q- |6 t% q

7 G( `  B0 Z# K# x  X; D}
  E( D" F' @# O' l! a8 Y) C& t" H8 ]7 q) X/ n, p  S& {
   void Key_Init(void)3 a* k7 c# @1 n3 e, A% r0 i7 t" b
   {+ S7 p8 J5 c4 @. g2 i$ d7 ^5 ?4 e
    RCC->APB2ENR |= 8;
2 a, ?; J% T3 L/ z" \0 e        RCC->APB2ENR |= 0x0010; 9 E' A4 |3 A3 Y' r( _+ m
        GPIOC->CRH &= 0xffffff00;4 {' s- b' S# W# o& O
        GPIOC->CRH |= 0x00000033;: t/ H6 O: F2 u0 B8 a7 Z  e$ R
        GPIOC->CRL &= 0x00ffffff;! Y) u% d4 w9 C* B4 R: j8 k
    GPIOC->CRL |= 0x33000000;
  H6 A$ J. x; T        GPIOC->ODR = 0xffff;3 d1 v+ _7 y% Z: t- U
   }
& A3 r' F' l5 i" [
+ r7 C% {3 S' I. X+ F7 A3 n   void Key_Proc(void)
& \" n5 @6 I6 f, q% H4 y" W3 }& m0 D   {
8 b# U* H& L4 q3 N. l   short key = GPIOB->IDR;
9 a. p( h! p3 K  F7 P0 P; w# Z   if(key & 0x8000)        # `4 i& j! o. [8 f* H# [" \
   {
- w* @+ o3 b5 h8 ]   flag = !flag;
& o+ Z# }+ |1 _   }   7 C; @. v$ d9 u/ Q* V3 ?7 `
   }
" V$ x; x& V4 q% Z, C. K+ y0 F* S5 W9 Q5 q+ `" _6 h0 P
$ O6 J2 H6 r, S: w& ]  C; ?
按键只是上电第一次管用,再按就不管用了,调试的时候主函数里的两个if语句貌似直接就跳过去了。
' N( c# o" p6 N1 ]3 Y1 O谁知道这是哪里的问题
+ Y+ H3 S& B# H5 }$ [

该用户从未签到

2#
发表于 2022-2-14 10:08 | 只看该作者
STM32不用库函数?你将flag设置为char类型是不对的,程序运行后,flag和!flag都是非零。将flag设置为bit看看。

该用户从未签到

3#
发表于 2022-2-14 10:16 | 只看该作者
主函数最好加延时。否则IO的变化肉眼是看不出来的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 20:38 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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