一、中断内核:
STM32的中断很强大,每个外设都可以产生中断,F103在内核水平上搭载了异常响应系统,系统异常有8个(算上RESET和HardFault也就10个),外部中断有60个,但是根据NVIC(嵌套向量中断控制器,控制整个芯片中断相关的功能),IP(中断优先级寄存器)数组中预留了240个位置(NVIC结构如上图),可见眼光之远,用于扩展,这是STM32F103用不到这么多。
如果以后要找跟内核相关的函数,都存在core_cm3.c和misc.c中,包括NVIC的函数的声明,但是其具体的库函数内容并不是和固件库头文件core_cm3.h一致(不在core_cm3.c),而是放在库函数的misc.c中,这点需要注意。
二、中断优先级的定义和分组:
三、中断编程的顺序:
1、使能中断请求
如何使能,需要配置哪个寄存器?
注意:这里与NVIC中的中断使能寄存器不是等同概念,中断使能可以理解成有2个大门,外设使能(小门,比如串口有发送完成中断,接收完成中断,这两个中断由串口控制寄存器的相关中断使能位来控制)和NVIC(大门,接受请求)。
2、配置中断优先级分组
如何配置,需要配置哪个寄存器?
通过NVIC_PriorityGroup函数。
3、配置NVIC寄存器,初始化NVIC_InitTypeDef;(定义在misc.h中,成员如下)
1-NVIC_IRQChannel:指定中断源(中断类型列表参考STM32F10X.H中已列举给出)
2-NVIC_IRQChannelPreemptionPriority:抢占优先级(根据分组表和选择来给)
3-NVIC_IRQChannelSubPriority:子优先级(根据分组表和选择来给)
4-NVIC_IRQChannelCmd:使能或者失能(内核使能,相当于上面说的大门,enable或disable)
4、编写中断服务函数
1-中断服务函数名要怎么写?写错了怎么办?
在启动文件的中断向量表中,将中断函数名称都已经初始化好了,由C语言特点可知,函数的名称对应于函数的地址,但是这些函数的内容都是空的,都是B. (启动文件是汇编程序)表示无限循环,如果自己写了函数,但是写错了,系统就在中断向量表中找不到中断服务函数的入口地址,但是电脑不是人,不会对你写错的函数报错,因为程序有无意义电脑不能识别,它只会自动去系统里执行这个循环空函数,所以自己函数的名称一定与启动文件中的名称相对应。
2-中断服务函数要写在什么地方?
为了编程方便管理,我们可以把程序直接可以写在中,内核的函数已经给了,如果外设中断函数可以自己继续补充。
四、中断小结
STM32F10X中断的方法还是比较清晰的,和单片机类似,多了一个优先级嵌套和分组的功能,另外要注意一些使用库函数编程的细节即可,后续再通过实验例子来测试各类中断的具体使用方法。
上一篇:关于由CubeMx生成stm32f4+freertos,不正常分析之堆栈大小设置
下一篇:【STM32F103】RCC-使用HSE/HSI配置时钟
推荐阅读
史海拾趣
关于Fuji Terminal Industry Co., Ltd.(富士端子工业有限公司)在电子行业中的发展起来的相关故事,由于直接关于该公司的详细发展历程和具体故事可能较为有限,且该公司可能更多地专注于特定领域(如端子、连接器等的制造),以下是根据一般行业经验和公司可能经历的发展路径,构建的五个相关故事:
1. 初创与专业化定位
在电子行业的早期,Fuji Terminal Industry Co., Ltd.作为一家新兴企业,凭借对端子技术的深入研究和市场需求的敏锐洞察,选择了专业化的发展道路。公司创始人或核心团队凭借在电子元件领域的丰富经验,决定专注于端子、连接器等基础电子元件的研发与生产。通过不断的技术积累和产品优化,公司逐渐在行业内树立了专业、可靠的形象。
2. 技术创新与品质提升
随着电子行业的快速发展,Fuji Terminal Industry Co., Ltd.意识到技术创新和品质提升是企业持续发展的关键。公司加大了研发投入,引进先进生产设备和技术人才,致力于开发更高性能、更可靠的端子产品。同时,公司建立了严格的质量控制体系,确保每一件产品都能达到客户的高标准要求。这些努力不仅提升了公司的市场竞争力,也赢得了客户的广泛信赖。
3. 市场拓展与国际化战略
在稳固国内市场的同时,Fuji Terminal Industry Co., Ltd.积极实施国际化战略,将目光投向了更广阔的国际市场。公司通过参加国际展会、建立海外销售网络等方式,不断拓展海外市场。凭借其优质的产品和服务,公司成功打入了欧美、亚洲等多个国家和地区的市场,实现了业务的快速增长。
4. 供应链整合与成本控制
面对日益激烈的市场竞争,Fuji Terminal Industry Co., Ltd.深知供应链整合和成本控制的重要性。公司积极与上下游企业建立长期稳定的合作关系,通过优化供应链管理、降低采购成本、提高生产效率等方式,有效控制了生产成本。同时,公司还注重与客户的沟通与协作,共同应对市场变化和挑战。
5. 可持续发展与环保责任
随着全球对环保问题的日益关注,Fuji Terminal Industry Co., Ltd.积极响应可持续发展的号召,将环保理念融入企业的生产经营中。公司致力于开发环保型端子产品,减少生产过程中的环境污染和能源消耗。同时,公司还加强了废弃物的回收和再利用工作,为构建绿色、低碳的电子信息产业链贡献了自己的力量。
需要注意的是,由于直接关于Fuji Terminal Industry Co., Ltd.的详细发展历程和具体故事可能较为有限,以上故事是基于一般行业经验和公司可能经历的发展路径构建的。实际情况可能因公司战略、市场环境等因素而有所不同。
随着全球对环保问题的日益关注,Exel Microsystems Inc公司也积极响应,履行环保责任。公司在XXXX年开始实施绿色生产战略,通过采用环保材料、优化生产流程等措施,降低了生产过程中的能耗和废弃物排放。此外,Exel还积极参与环保公益活动,推动行业和社会的可持续发展。这些举措不仅彰显了公司的社会责任感,也为公司赢得了良好的社会声誉。
随着全球对环保问题的日益关注,Exel Microsystems Inc公司也积极响应,履行环保责任。公司在XXXX年开始实施绿色生产战略,通过采用环保材料、优化生产流程等措施,降低了生产过程中的能耗和废弃物排放。此外,Exel还积极参与环保公益活动,推动行业和社会的可持续发展。这些举措不仅彰显了公司的社会责任感,也为公司赢得了良好的社会声誉。
近年来,随着环保意识的提升和绿色能源的普及,三礼公司也积极投身于绿色生产领域。2019年,公司在广西南宁开始建设新厂,预定投资3亿元人民币用于厂房及自动化设备的建设。新厂总建筑面积达70,000平方米,将成为公司目前所有生产基地中规模最大的一个。同时,公司还计划全面架设太阳能发电系统,目标是在未来三年内承担公司总需求电量的30%。这一举措不仅有助于降低公司的生产成本,还体现了公司对环保事业的积极贡献。
这五个故事只是三礼公司发展历程中的一部分缩影,但它们却生动地展现了公司在电子行业中的成长轨迹和不懈努力。从北美市场的拓展到中国内地生产能力的扩大,再到技术突破和新产品开发,三礼公司始终保持着敏锐的市场洞察力和强大的创新能力。同时,公司还积极投身于绿色生产领域,为推动电子行业的可持续发展做出了积极贡献。
近年来,随着环保意识的提升和绿色能源的普及,三礼公司也积极投身于绿色生产领域。2019年,公司在广西南宁开始建设新厂,预定投资3亿元人民币用于厂房及自动化设备的建设。新厂总建筑面积达70,000平方米,将成为公司目前所有生产基地中规模最大的一个。同时,公司还计划全面架设太阳能发电系统,目标是在未来三年内承担公司总需求电量的30%。这一举措不仅有助于降低公司的生产成本,还体现了公司对环保事业的积极贡献。
这五个故事只是三礼公司发展历程中的一部分缩影,但它们却生动地展现了公司在电子行业中的成长轨迹和不懈努力。从北美市场的拓展到中国内地生产能力的扩大,再到技术突破和新产品开发,三礼公司始终保持着敏锐的市场洞察力和强大的创新能力。同时,公司还积极投身于绿色生产领域,为推动电子行业的可持续发展做出了积极贡献。
1991年,三礼公司正式成立了美国分公司(3LU),此举标志着公司开始进军北美市场,将其作为货物管理中心,并与G-TEP合作组建了3L Global Co.(3LG),共同开拓和发展所有北美业务。这一战略决策为三礼公司打开了新的增长通道,使得公司能够更好地服务全球客户,提升品牌影响力。
我看了一些evc写的应用程序,好多都没有建类,直接加个头文件和cpp文件就开始写函数了, 我想问下,在evc中使用类考到板子运行后会影响速度吗?还是应该建类便于分层和程序的 可读性?求高手赐教~… 查看全部问答∨ |
那位大虾有驱动max7221显示芯片的串口程序阿?(普通i/o) 我用51单片机的p1.5~p1.7口驱动max7221芯片,编写的程序始终不起作用,不知那位大虾有这样的示例程序指点一下小弟… 查看全部问答∨ |
学习ADC0802时序图,没有搞明白:时序图上画的都是等周期的,可是程序却是穿插了许多片选,读写指令,因此会想到这会不会引起时钟周期就不是相同的了?不知道理解的对不对?… 查看全部问答∨ |
TIM的PWM输出和GPIO_WriteBit不能同时实现吗 一开始用TIM3、4的PWM输出不同频率的脉冲,GPIO初始化输出模式定义为AF_OD。后来因为想控制脉冲个数,改成用GPIO_WriteBit加for循环来生成脉冲,发现GPIO初始化得改成Out_OD,但这样PWM输出又不行了。后来我想在初始化用AF_OD,需要GPIO_Writ ...… 查看全部问答∨ |
我的一个DSP功能板,之前用的好好的,刚连同产品进行过耐压测试,测试当天并没有发现问题,产品也正常工作。 放置几天后,今天突然开不了机了。拆开产品后,发现DSP模块没有运行,但是电源、晶振均正常。 然后我用打开CCS,将程序文件LOAD进去, ...… 查看全部问答∨ |