第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

智能復(fù)位——程序控制MCU復(fù)位

標簽:
Ruby

webp

微处理器复位方法:

硬件引脚RESET复位;
用看门狗复位;
程序控制复位。

软件复位实现方法

首先声明一个函数指针,指向复位后要开始执行指令的位置:

  void (*app_start)(void) = 0x0000;

之后,在自己的程序中想复位的地方调用app_start();也就是跳到0x0000位置执行指令。

可以根据不同MCU复位的地址,修改上边的地址(0x0000)。

实际上你可以跳到任何位置执行或调用相应指令或函数。

实例测试

老套路,发烟测试:以Arduino为开发环境来测试。

注意:在AVR微处理器中,为了使Arduino复位时不再进入引导区,使AVR将BOOTRST设置为1。


使用函数指针进行软件复位的代码如下,你能想象到下边的程序会使LED灯闪亮吗?

// 0. 引脚定义const int LED_PIN   13    //  定义LED引脚为13号数据引脚(DIG13)static void (*reset_this_CPU)(void) = 0x0000;   //   复位本CPU函数指针// 1. 初始化void setup() {
      pinMode(LED_PIN, OUTPUT);   //  初始化D13为输出  
      digitalWrite(LED_PIN, HIGH);   //  D13输出高电平
      delay(1000);                 //  延时1秒
      digitalWrite(LED_PIN, LOW);    //  D13输出低电平
      delay(1000);                 //  延时1秒  
      reset_this_CPU();   //  跳到0x0000地址指针,也就是复位}// 2. 循环void loop() {      //  此处什么也没有啊!}

结论

通过本方法,可以通过软件方式进行复位,也可以用这个函数指针的方法调用任何函数。(实在不理解,请翻一下《微机原理》,谢谢。。。)


    感谢一直关注着禾灮成长进步的朋友们。你们的信任、支持和鼓励,鞭策着我们一路走到了今天。
    
    感谢所有的合作伙伴,我们相互促进,共同见证了彼此的成长。

    感谢所有曾经在禾灮彼此倚靠、相互鼓励、携手同心、砥砺同行的兄弟姐妹。这里承载了我们的青春与热血。

                禾灮,感谢有你。

    未来,我们将一如既往,砥砺前行。

                                        禾灮·小楊
                                       2018.08.06



作者:禾灮
链接:https://www.jianshu.com/p/d32ccd95058a


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 1
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消