首先,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 模式之外...