ls164013 发表于 2018-8-27 11:35:13

STM32F030求助帖,求指点关于IO口的控制问题

诸位大佬有没有过STM32f030r8t6开发板的,怎么可以通过编写代码来完成对SW_DP(代码下载口)的更改,改成开机后前五秒或者十秒用来下载,计时完成之后该口变成普通IO口的功能。

ls164013 发表于 2018-8-27 16:32:13

感谢诸位大佬的帮助,问题已经解决,在此提供一下解决办法,希望能对后来者提供帮助:开头加一个5秒的延时函数就可以了,然后复位键按下后你就有五秒的时间可以用来下载代码,之后延时结束,PA13和PA14就是普通IO口功能了

与龙共舞 发表于 2018-8-27 12:12:55

没做过 可以建立你这样做:在内存flash找一个地方写flag
上电以后flag是0 你就A功能 做完以后flag写1,然后系统复位。再去读flag就是1了,你可以做B功能了。 (很多事情都是这样做的比如屏幕校准 RTC后背区等) 如果你希望每次都这样,可以在B功能以后把flag=0.

cugxiao 发表于 2018-8-27 12:19:07

延时个几秒失能SWD和JTAG就可以了啊,要下载程序时复位一下就可以了,担心来不及就延时10秒嘛,10秒绝对够你操作了

wenyangzeng 发表于 2018-8-27 13:28:24

端口重映像禁止SW_DP就可以了,问题是只能下载一次,运行后就无法再下载了。

ls164013 发表于 2018-8-27 13:32:46

wenyangzeng 发表于 2018-8-27 13:28
端口重映像禁止SW_DP就可以了,问题是只能下载一次,运行后就无法再下载了。 ...

不能设置成那种 开机一定时间内下载的 然后后面自动更新成I/o口的那种吗,然后下次使用的时候重新断电复位也不可以恢复吗?

ls164013 发表于 2018-8-27 13:34:05

cugxiao 发表于 2018-8-27 12:19
延时个几秒失能SWD和JTAG就可以了啊,要下载程序时复位一下就可以了,担心来不及就延时10秒嘛,10秒绝对够 ...

大佬 这样写的话 代码还是写在MAIN函数吗

发表于 2018-8-27 13:46:35

自己写代码可以实现,想改成什么模式都可以。

cugxiao 发表于 2018-8-27 15:30:44

ls164013 发表于 2018-8-27 13:34
大佬 这样写的话 代码还是写在MAIN函数吗

正常写代码就行啊,只不过在进入主循环前延时10s然后失能SWD和JTAG就行

ls164013 发表于 2018-8-27 15:37:59

cugxiao 发表于 2018-8-27 15:30
正常写代码就行啊,只不过在进入主循环前延时10s然后失能SWD和JTAG就行

失能还是使能,我看网上好多都是使能代码 ,然后库函数我看了下,里面也就一个使能函数,并没有那个DISABLE的相关函数
页: [1] 2
查看完整版本: STM32F030求助帖,求指点关于IO口的控制问题