完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
1.建立中断服务入口地址,即把中断向量与中断服务函数链接起来。
我们知道在串口NVIC配置中我们只定义了个 NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; 也就是中断服务向量,再然后我们在stm32f10x_it.c文件的void USART2_IRQHandler(void){} 函数里添加串口的服务程序。 但是mcu怎么知道中断向量USART2_IRQn对应的是USART2_IRQHandler(){}呢,这个就是启动文件所起的作用。 在启动文件 .s 中 以 g_pfnVectors: 开头。 2.从systeminit()函数进入到main()函数. 对于stm32我们定义系统时钟的时候直接在system_stm3210x.c文件里修改宏定义即可,而事实上到底是从哪开始执行的呢? system_stm3210x.c文件里有个SystemInit()函数,就是对时钟的设置。 而这个SystemInit()在哪调用的呢,就是启动文件先调用了,然后才进入到mian()函数。 在启动文件 .s 中有以下一段话可以解释。 /* Call the clock system intitialization function.*/ bl SystemInit /* Call static constructors */ bl __libc_init_array /* Call the application's entry point.*/ bl main bx lr 3.有些启动文件定义了堆栈大小,可以在这里进行修改。(有些是在 .ld 进行定义的) |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
659 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1088 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1563 浏览 1 评论
532 浏览 0 评论
1062 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-7 19:25 , Processed in 0.668912 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号