[STM32F1] IAR寄存器方式开发stm32--中断函数问题

[复制链接]
3284|14
 楼主| lyc613 发表于 2015-2-3 10:29 | 显示全部楼层 |阅读模式
本帖最后由 lyc613 于 2015-2-3 11:56 编辑

iar for arm 6.3
详情请查看附件示例.查询接收没有问题
只是想接收中断而已.尝试过很多方法都不对.求指教
在iar for arm里写stm32的中断函数格式怎么写
精简后的程序 STM32F103C8-PKT Uart1中断接收.rar (13.59 KB, 下载次数: 22)
 楼主| lyc613 发表于 2015-2-3 11:00 | 显示全部楼层
自顶一楼
戈卫东 发表于 2015-2-3 11:38 | 显示全部楼层
首先你的工程里要有那个startup_stm32f10x_md.s,然后你在这个文件里面找到你要的中断函数名字,一般的,它是“void USART1_IRQHandler(void)”,然后你用这个名字自己定义一个函数就可以了。

评分

参与人数 1威望 +3 收起 理由
lyc613 + 3

查看全部评分

戈卫东 发表于 2015-2-3 11:46 | 显示全部楼层
嗯不要忘了设置相应的中断控制。。。。

评分

参与人数 1威望 +3 收起 理由
lyc613 + 3

查看全部评分

 楼主| lyc613 发表于 2015-2-3 11:53 | 显示全部楼层
戈卫东 发表于 2015-2-3 11:38
首先你的工程里要有那个startup_stm32f10x_md.s,然后你在这个文件里面找到你要的中断函数名字,一般的,它 ...

我add进去后.编译 会提示 找不到 SystemInit
然后我把我的系统开始初始化函数名称改成了 SystemInit .无错误了. 按照你说的方法建立了一个void USART1_IRQHandler(void)函数. 但是程序还是不会进入这个中断函数.
我把程序无用的去掉.您再看下.
 楼主| lyc613 发表于 2015-2-3 11:56 | 显示全部楼层
戈卫东 发表于 2015-2-3 11:46
嗯不要忘了设置相应的中断控制。。。。

已更新了lz位
戈卫东 发表于 2015-2-3 13:54 | 显示全部楼层
2015-0203-t1.rar (536.76 KB, 下载次数: 32)
看看我的吧。
103VE,程序在RAM调试。
---------
你的103C8应该是MD不是LD吧?
还有尽量不要把可执行代码放到“.h”文件里面。。。。

评分

参与人数 1威望 +3 收起 理由
lyc613 + 3

查看全部评分

 楼主| lyc613 发表于 2015-2-3 14:13 | 显示全部楼层
戈卫东 发表于 2015-2-3 13:54
看看我的吧。
103VE,程序在RAM调试。
---------

嗯 .谢谢你:handshake
戈卫东 发表于 2015-2-3 14:33 | 显示全部楼层
你的程序好像是缺少NVIC里面USART1的中断使能
mohanwei 发表于 2015-2-3 21:50 | 显示全部楼层
到厂家网站下载个外设驱动库,解压,里面有各种各样的工程模板……挑一个,改名,加入你自己的文件就好了

评分

参与人数 1威望 +1 收起 理由
lyc613 + 1

查看全部评分

 楼主| lyc613 发表于 2015-2-4 09:06 | 显示全部楼层
戈卫东 发表于 2015-2-3 14:33
你的程序好像是缺少NVIC里面USART1的中断使能

后来放弃了 iostm32f10xxb头文件...  里面有些关于nvic的寄存器没有找到..不知怎么搞的
然后就用st的官方头文件来写了.
 楼主| lyc613 发表于 2015-2-4 09:07 | 显示全部楼层
mohanwei 发表于 2015-2-3 21:50
到厂家网站下载个外设驱动库,解压,里面有各种各样的工程模板……挑一个,改名,加入你自己的文件就好了 ...

IAR for arm 自带的例程里面都没有用自家的 ios头文件 用的库函数.而我目前不想用库函数
mohanwei 发表于 2015-2-4 10:35 | 显示全部楼层
lyc613 发表于 2015-2-4 09:07
IAR for arm 自带的例程里面都没有用自家的 ios头文件 用的库函数.而我目前不想用库函数 ...

你拿一个库函数版的,改成直接配置寄存器看看,能否省1字节?最大的可能是code和ram用的更多……
编译器已经自动把各种表达式、宏、四则运算、简单的函数调用合并成直接赋值了,绝对比你自己琢磨的还高效得多。
而且从维护的角度看,库函数就像小白文,谁都能看;天书一样的寄存器只能用来装13、给自己添麻烦和给别人设门槛
就算你记下了几百个寄存器,换一个MCU呢:lol
 楼主| lyc613 发表于 2015-2-5 08:56 | 显示全部楼层
mohanwei 发表于 2015-2-4 10:35
你拿一个库函数版的,改成直接配置寄存器看看,能否省1字节?最大的可能是code和ram用的更多……
编译器 ...

嗯  我当然知道库函数的优势 也是未来开发的趋势
但是
1 我记不住哇..我记一条句子顶我记10个寄存器
2 拿不准,没有亲身操作 总感觉不够靠谱
3 换cpu是很慎重的选择 哪有那么多时间换来换去
Liang118038 发表于 2017-3-2 18:23 来自手机 | 显示全部楼层
本帖最后由 Liang118038 于 2017-3-2 18:34 编辑

13楼挺装B的,官方库函数写得烂又不是少人骂的,一直忽悠初学的小白死记硬背那又长又臭的库函数真是够了,稍微看过stm32f10x.h都知道寄存器的定义明显比那烂库清晰明了多了去
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

61

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部