完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。
本示例所用的最小系统板原理图:
Delay.h文件放在INC文件夹下即可。
不同于启动文件外,本节要讲的是C语言中包含汇码代码,这就需要用到关键字“__ASM” 或“__asm”关于__asm关键字的用法有如下说明: __asm 这个关键字将信息从编译器传递给ARM汇编程序armasm。这个关键字的确切作用取决于它的使用。 嵌入式汇编/ 内联汇编: 关键字__asm可以将内联程序集合并到函数中。例如: int add(int i, int j) { int res; __asm { ADD res, i, j } return res; } 指定汇编标签: 关键字__asm可以为C程序变量指定程汇编变量名。例如:: int count __asm__("count_v1"); // 在汇编代码中导出的变量count_v1,而不是count 命名寄存器变量: 关键字__asm可以声明一个命名的寄存器变量。例如: register int foo __asm("r0"); // 变量foo 实际上就是寄存器r0. 类似的操作在”Cmsis_armcc.h”中较多见。 关于__asm关键中,本节主要用到的是 “嵌入式汇编/ 内联汇编”功能。
将其延时1us及2us的操作用汇编指令nop来实现
让程序全速运行,查看PC13引脚上的波形, 进入软件仿真可以看到Delay_us中函数1us及2us的函数对应汇编代码如下: 通过上面的实例,我们已基本学会基于keil MDK平台的stm32 中C程序中嵌入汇编的实现方法,那么如么在汇编程序中谳用C函数接口呢,这个其实更简单,可以参看stm32的官方启动文件“startup_stm32fxxxx.s” 它就是一个典型的汇编程序调用C函数的实现。最后更多关于__asm的说明可以查看KEIL mdk的帮助文档。: |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1810 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1098 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
737 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1687 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
749浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
584浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
567浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 08:36 , Processed in 0.780590 second(s), Total 75, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号