完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1: 声明数据, 但没赋值就被使用, 如下面的 u8 i;
for(u8 i;i<8;i++){ printf(" %d ",i); } 上面的示例代码, 绝大部分时候, 会如期输出 0, 1, 2, 3, 4, 5, 6, 7 但是! 但是! 但是! 某个时候值不是这样的, 什么值? 什么时候? 2: 先清中断, 后清中断 void TIM6_DAC_IRQHandler(void) { TIM6->SR = 0; // A位 TimesCount--; if(TimesCount==0) TIM6->CR1 = 0; TIM6->SR = 0; // B位 } A位和B位, 只是示例, 现实中当然是只使用其中的一行. 这就是常见的: 先清中断和后清中断最清晰的示例了, 延时差了一倍时间, 不管是us, 还是ms, 注意, 并不是因为执行中间的代码花了时间, 而是内部处理机制. 曾在这个先后顺序上费了近一天时间. 代码上是没错的, 逻辑也没错, 任你查也根本发现不. 先清中断、后清中断是两回事, 为什么? 不为什么, 没资料, 你试试百度, 查无下文!! 3: 宏标识符 #define 24L01_SPI_CS_GPIO GPIOH #define 24L01_SPI_CS_PIN PIN5 错误提示: error in include chain : macro name must be an identifier (宏名称必须是标识符)。 上面这种引脚的宏定义方法,很多人天天用着. 但,这个很多人里面,绝大部分不知道上面问题在哪。 别想了,度娘.............不能以数字开头, 就这简单, 只是那错误提示带着你绕远路了。 4:中断处理函数里调用函数 这个,你一定中过枪! 不论多简单的程序,不要在中断里面调用函数!!! 因为: 它出错时,你根本不会得到错误提示,查找中断类错误是个丧气事。 铁律: 不要在中断里调用函数!如果要,快进快出,确保清晰每一行代码! 绝对禁止:函数调用再调用的,更甚者,调用中还有延时函数! 5:低于1ms的中断 如果,芯片刚启动时工作正常,过一会就不正常了,程序查无错误,那么...... 查查程序中有没有低于1ms的中断。中断进出过于频繁时,芯片消耗资源过多......用手摸摸芯片,看是不是有点发烫了。 有什么事,必须要1秒处理1000次以上的?才十元八块的芯片现在这么牛叉了吗? 用过FreeRTOS的同学都知道,最小计时单位:1ms. 不是小于1ms的中断能设,只是要特别小心特别小心。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1758 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1055 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1931浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
722浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
563浏览 3评论
590浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
548浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 04:26 , Processed in 0.740190 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号