OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8136|回复: 3

请问,AFIO复用功能IO中的AF是什么的简写啊?还有什么时候需要使能AFIO的时钟呢?

[复制链接]

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2012-3-19
在线时间
0 小时
发表于 2013-4-22 16:16:05 | 显示全部楼层 |阅读模式
既然叫做复用功能IO,也就是当IO口用作第二功能时候需要使能啊,但是我看串口发送信息的实验,并没有使能AFIO,PA9和PA10部是用做第二功能么?求教!
专注挽尊30年,这些年我挽过的楼主连起来可以绕地球30圈。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-7-22 23:32:06 | 显示全部楼层
AFIO:alternate function IO



嵌入式常见英文缩写和英文词汇(搜集中)?英文缩写?
ARM:Advanced?RISC?Machine?
AAPCS:ARM?Architecture?Process?call?standard????ARM体系结构过程调用标准?RISC:?Reduced?Instruction?Set?Computer?精简指令集计算机?RTOS:Real?Time?Operating?System?实时操作系统?DMA:Direct?Memory?Access?存储器直接访问?EXTI:?External?Interrupts?外部中断?
FSMC:?Flexible?static?memory?controller?可变静态存储控制器?FPB:flash?patch?and?breakpoint???FLASH?转换及断电单元?HSE:Hign?speed?external?HSI:?High?speed?internal?LSE:?Low?Speed?external?LSI:?Low?Speed?Internal?
LSU:?load?store?unit?存取单元?PFU:?prefetch?unit?预取单元?
ISR:Interrupt?Service?Routines?中断服务程序?NMI:?Nonmaskable?Interrupt?不可屏蔽中断?NVIC:?Nested?Vectored?Interrupt?Controller?MPU:?Memory?Protection?Unit?
MIPS:million?instructions?per?second?每秒能执行的百万条指令的条数?RCC:Reset?and?clock?control?复位和时钟控制?RTC:?Real-Time?Clock?实时时钟?IWDG:?independent?watchdog?WWDG:Window?watchdog?TIM:timer?定时器???
端口?
AFIO:alternate?function?IO?复用IO端口?
GPIO:general?purpose?input/output?通用IO端口?
IOP(A-G):IO?port?A?-?IO?port?G??(例如:IOPA:IO?port?A)?CAN:Controller?area?network?
FLITF:The?Flash?memory?interface?闪存存储器接口?I2C:?Inter-integrated?circuit?
IIS:?integrate?interface?of?sound?集成音频接口?JTAG:joint?test?action?group?联合测试行动小组?SPI:Serial?Peripheral?Interface?SDIO:?SD?I/O?
UART:?Universal?Synchr./Asynch.?Receiver?Transmitter?USB:?Universal?Serial?Bus???
寄存器相关?
CPSP:?Current?Program?Status?Register?当前程序状态寄存器?SPSP:?saved?program?status?register?程序状态备份寄存器?




       var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);    







CSR:clock?control/status?register?时钟控制状态寄存器?LR:?link?register?链接寄存器?SP:?stack?pointer?堆栈指针?
MSP:?main?stack?pointer?主堆栈指针?
PSP:process?stack?pointer?进程堆栈指针?PC:?program?counter?程序计数器???
调试相关?
ICE:in?circuit?emulator?在线仿真?ICE?Breaker?嵌入式在线仿真单元?DBG:debug?调试?
IDE:integrated?development?environment?集成开发环境?DWT:?data?watchpoint?and?trace?数据观测与跟踪单元?ITM:?instrumentation?trace?macrocell?测量跟踪单元?ETM:?embedded?trace?macrocell?嵌入式追踪宏单元?TPIU:trace?port?interface?unit?跟踪端口接口单元?TAP:?test?access?port?测试访问端口?DAP:?debug?access?prot?调试访问端口?TP:?trace?port?跟踪端口?DP:debug?port?调试端口?
SWJ-DP:?serial?wire?JTAG?debug?port??串行-JTAG?调试接口?SW-DP:?serial?wire?debug?port????????串行?调试接口?JTAG-DP:JTAG?debug?port?????????????JTAG?调试接口???
系统类?
IRQ:?interrupt?request?中断请求?
FIQ:?fast?interrupt?request?快速中断请求?SW:software?软件?
SWI:?software?interrupt?软中断?RO:read?only?只读(部分)?RW:read?write?读写(部分)?ZI:zero?initial?零初始化(部分)?
BSS:Block?Started?by?Symbol?以符号开始的块(未初始化数据段)???总线?
Bus?Matrix?总线矩阵?Bus?Splitter?总线分割?
AHB-AP:advanced?High-preformance?Bus-access?port?APB:advanced?peripheral?bus?APB1:?low?speed?APB??APB2:?high?speed?APB?
PPB:?Private?Peripheral?Bus?专用外设总线???杂类?









ALU:Arithmetic?Logical?Unit?算术逻辑单元?CLZ:?count?leading?zero?前导零计数(指令)?
SIMD:?single?instruction?stream?multiple?data?stream?单指令流,多数据流?VFP:?vector?floating?point?矢量浮点运算???
词汇/词组?
Big?Endian????大段存储模式?Little?Endian?小段存储模式?
context?switch?任务切换(上下文切换)(CPU寄存器内容的切换)?task?switch?任务切换?literal?pool?数据缓冲池???
词汇类/单词?arbitration?仲裁?access?访问?
assembler?汇编器?disassembly?反汇编?binutils?连接器?
bit-banding?位段(技术)?bit-band?alias?位段别名?bit-band?region?位段区域?banked?分组?buffer?缓存/?ceramic?陶瓷?fetch?取指?decode?译码?execute?执行?
Harvard?哈佛(架构)?handler?处理者?heap?堆?stack?栈?latency?延时?
load?(LDR)?加载(存储器内容?加载到?寄存器Rn)?store?(STR)?存储(寄存器Rn内容?存储到?存储器)?Loader?装载器?optimization?优化?process?进程/过程?thread?线程?
prescaler?预分频器?prefetch?预读/预取指?perform?执行?pre-emption?抢占?tail-chaining?尾链?late-arriving?迟到??









resonator?共振器?????
指令相关?
instructions?指令?
pseudo-instruction?伪指令?directive?伪操作?comments?注释?
FA?full?ascending?满栈递增(方式)?EA?empty?ascending?空栈递增(方式)?FD?full?desending?满栈递减(方式)?ED?empty?desending?空栈递减(方式)???
翻译?
1.number?of?wait?states?for?a?read?operation?programmed?on-the-fly?动态设置(programmed?on-the-fly)的?读操作的?等待状态数目?????????
参考文章?
1.BSS的参考:http://baike.baidu.com/view/453125.htm?fr=ala0_1?
BSS是Unix链接器产生的未初始化数据段。其他的段分别是包含程序代码的“text”段和包含已初始化数据的“data”段。BSS段的变量只有名称和大小却没有值。此名后来被许多文件格式使用,包括PE。“以符号开始的块”指的是编译器处理未初始化数据的地方。BSS节不包含任何数据,只是简单的维护开始和结束的地址,以便内存区能在运行时被有效地清零。BSS节在应用程序的二进制映象文件中并不存在。???在采用段式内存管理的架构中(比如intel的80x86系统),bss段(Block?Started?by?Symbol?segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域,一般在初始化时bss?段部分将会清零。bss段属于静态内存分配,即程序一开始就将其清零了。?
??比如,在C语言之类的程序编译完成之后,已初始化的全局变量保存在.data?段中,未初始化的全局变量保存在.bss?段中。?
??text和data段都在可执行文件中(在嵌入式系统里一般是固化在镜像文件中),由系统从可执行文件中加载;而bss段不在可执行文件中,由系统初始化。?2.ISR的参考:?http://baike.baidu.com/view/32247.html?fromTaglist?3.DMA的参考:?http://baike.baidu.com/view/32471.htm?fr=ala0_1?
在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。?
??一个完整的DMA传输过程必须经过下面的4个步骤。???1.DMA请求?CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。?
??2.DMA响应?DMA控制器对DMA请求判别优选级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,









表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。???3.DMA传输?DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。?
??4.DMA结束当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。?
??由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。
我建了一个战舰stm32交流群:320350722 新手请教老手,老手大显身手! stm32交流群:320350722 stm32交流群:320350722
回复 支持 3 反对 0

使用道具 举报

7

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2012-8-31
在线时间
0 小时
发表于 2013-4-22 16:39:15 | 显示全部楼层
我也有个疑问,加入开启了AFIO是不是所有的第二功能全部开启? 比如我用PA0的时候 我开启了复用时钟 那这时候PA9PA10是IO 还是串口?
有事就找我。。。 反正我也干不了。。。 淘宝:http://shop61586917.taobao.com/
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
发表于 2013-4-22 18:07:34 | 显示全部楼层
首先,看芯片资料,USART1_TX A9 , USART1_RX A10 串口一本来就是接的PA9和PA10,这是不需要复用的。其次,在两种情况下要用到复用功能。第一:对寄存器AFIO_EVCR,AFIO_MAPR和AFIO_EXTICRX进行读写操作前,应当首先打开AFIO的时钟。这些复用只要这样就行:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);这里是必须要开的,芯片资料里面有。第二:比如我想要复用串口3,看芯片资料会发现,本来串口3是接在PB10和PB11上面的,但我想要复用到其他引脚,这里可以这样设置:RCC_APB2PeriphClockCmd(COM3_PORT_APB2Periph|RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);请注意后面一句,这里不仅要使能复用,还得写一下是怎么复用的,可以是部分重映像,也可以是完全重映像,这是因为串口3可以有两个复用。具体有几个复用,看芯片资料就行。芯片资料就是STM32参考手册,具体在109页到129页。
态度决定一切
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 23:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表