你妹,原来GPIO端口复用是这么个意思

2019-10-15 04:13发布

我们以前在玩51的时候,比如某个引脚既可以作为普通IO口用,也可以作为串口用,甚至有的还可以作为AD口用,还有的可以作为外部中断口用。
相信上面这句话非常容易理解!
But,STM32喜欢装逼,搞出来一个新名词,叫做“端口复用”!
结果我研究了半天才知道原来是STM32在考我的语文水平!我只想说两个字:你妹!
我的理解对吗?同意的请回复“STM32你妹
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
42条回答
mcu369
1楼-- · 2019-10-19 00:25
ycc1169 发表于 2016-8-8 11:45
用POS机改造,不错哦,估计是很串口的某种协议和isp的环境有关

  嗯。
  可是自己也没本事去修改固件,只有期待以后能有更好的固件共享吧。
  再,昨天稍稍研究了一下怎样让程序下载运行于RAM,也成功了!这样,也不必担心之前重新用串口烧录的问题了。挺好的!
  不过啊,在RAM中进行仿真,我发现不能按Debug窗口中“Reset”进行复位,如果这样了,程序就重新进ROM运行了,只有退出Debug,再次Download后进Debug才能正常。(也许小白的话让大虾们感觉不知所云……
  我所用的Debug初始化信息文件内容是这样的:

FUNC void Setup (void){SP =_RDWORD(0x20000000);                                //Setup Stack Pointer
PC =_RDWORD(0x20000004);                                //Setup Program Counter
_WDWORD(0xE000ED08,0x20000000);        // Setup VectorTable Offset Register

}LOAD .RAMOUTLED.axfINCREMENTAL                                //Download axf文件
Setup();                                                                //调用Setup()
g,main                                                                //跳转到main
  不知兄台可否帮我讲讲这“SP”、“PC”堆栈指针、程序计数器必须设置成这样的初始值么?是什么道理呢?
  我做好设置后,只要按“Debug”按钮即可进入RAM的运行调试,可这样根本不行,程序无法运行;而只有在之前按了“Download”按钮,再进Debug,一切就正常了!
  按理说来,这初始化信息文件中已经有一条“LOAD”命令了啊?意思不就是装载了目标文件了么?怎么不行呢?是不是上边的这些“SP”、“PC”初始值不对引起的么?
  如果不是,那是不是说明这个“LOAD”与MDK中的“Download”按钮的作用有区别?

……看来,这个帖子快成我的帖子了……

  再次感谢兄台!
ycc1169
2楼-- · 2019-10-19 02:16
 精彩回答 2  元偷偷看……
h-xiaoguaishou
3楼-- · 2019-10-19 03:58
正点原子 发表于 2013-11-8 10:24
只能说你理解不够透彻。
51这样是一锅煮,什么都连接在一起,你串口输出的时候,AD也连上了,中断也连上了 ...

纠结了好久的复用功能,被你们这么一干起来明白透彻了,原子哥解释完美!
caijie0513
4楼-- · 2019-10-19 09:56
楼主浮躁了,这可不行
寻觅一生
5楼-- · 2019-10-19 14:34
原子哥的解释确实灰常完美
dreamARM
6楼-- · 2019-10-19 18:12
正点原子 发表于 2013-11-8 10:24
只能说你理解不够透彻。
51这样是一锅煮,什么都连接在一起,你串口输出的时候,AD也连上了,中断也连上了 ...

原子哥,你用什么51内核的,串口和AD连到一起了?
还有,51的串口使能的时候和STM32一样,也是切开的。
STM32就是51和AVR机制后期衍生出来的

原子哥单片机还得学呀,嘿嘿

一周热门 更多>