JTAG設定成普通IO,晶元程式燒寫不了操作辦法

2021-09-20 21:15:39 字數 871 閱讀 7700

首先,stm32f10x系列的mcu復位後,pa13/14/15 & pb3/4預設配置為jtag功能。有時我們為了充分利用mcu i/o口的資源,會把這些埠設定為普通i/o口。

stm32預設啟動時pb4、pb3、pa15三個引腳不是普通io,而是jtag的復用功能,分別為jntrst、jtdi、jtdo。

標準庫具體方法如下:

在gpio_configuration(); // 配置使用的 gpio 口:

gpio_pinremapconfig(gpio_remap_swj_disable, enable);

// 改變指定管腳的對映 gpio_remap_swj_disable swj 完全禁用(jtag+sw-dp)

gpio_pinremapconfig(gpio_remap_swj_jtagdisable , enable);

// 改變指定管腳的對映 gpio_remap_swj_jtagdisable ,jtag-dp 禁用 + sw-dp 使能

rcc_apb2periphclockcmd(rcc_apb2periph_afio, enable);

hal庫配置方法為:

__hal_afio_remap_swj_nojtag();  //使能swd 禁止jtag

如果這裡不選,工程裡會禁掉swd jtag ,__hal_afio_remap_swj_disable(),所以要把這行注釋掉或者在cube工程裡把sys裡的選項選上

如果發現第一遍能燒寫,第二遍燒寫不了的情況,將rst引腳拉低的同時迅速燒寫程式

關於JTAG引腳設定為普通IO口

stm32微控制器中的jtdo與jntrst是jtag引腳復用,一般最好不用jtag dp除錯埠,而是用sw dp,只需要jtms swdio與jtck swclk。這樣可以省下有限的io資源。但是stm32復位後,jtag與sw預設同時開啟的,即所有的jtag埠均被系統保留,軟體設定gpio是不起...

ABAP 程式呼叫設定成後台作業模式

data lt rspar type table of rsparams,ls rspar type rsparams,lv jobname type btcjob value z backjog 設定作業名稱 lv jobcount type btcjobcnt.add rspars 執行條件欄位...

為什麼U boot程式中要設定成svc模式?

特權模式 除使用者模式外,其它模式均為特權模式 privileged modes arm 內部暫存器 和一些 片內外設 在硬體設計上只允許 或者可選為只允許 特權模式下訪問。此外,特權模式可以自由的切換處理器模式,而使用者模式不能直接切換到別的模式。異常模式 特權模式中除系統 system 模式之外...