![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机
CodeCramt
这个作者很懒,什么都没留下…
展开
-
stm32F4单片机计算浮点数的时候偶发性出错的解决方法
发现问题项目开发过程中,中断中要计算几个浮点数,仿真时发现浮点数经常性计算错误:计算结果不可能是负值,但却会计算出负值,而且与真实结果完全没有关联性.当时单片机使用的是STM32F429ZGT6,主频设置为192MHz,运行RTOS,开了十个定时器中断.以及几个外部中断可能的原因因为执行的函数是在中断中,而且这个函数还挺长,两三百行,所以想到是有可能进中断次数太多,导致栈溢出.将栈调大至0x1000即4K,还是不行,遂排查栈的问题.设置的主频过高,导致单片机稳定性降低,因F429推荐主频是180M原创 2020-11-30 14:31:17 · 3482 阅读 · 0 评论 -
单片机实现屏幕界面,多层菜单
单片机实现屏幕界面,多层菜单简介编写环境:Keil μVision 5硬件设备:STM32F103C8T6、Nokia 5110屏幕,EC11旋转编码器本界面控件理论上不限制屏幕、不限制单片机型号(未验证)移植方便代码分析数据结构行元素结构体typedef struct{ uint16_t enterViewIndex;//按下确定键跳转的界面 char * text; //当前行显示的文本 HandlerFunc handler; //显示函数}RowListType原创 2020-05-25 23:35:11 · 5938 阅读 · 4 评论 -
关于C51的data、idata、xdata及code
data若定义变量不标注存储类型,则默认为data型,即存放于内部RAM低128字节中.存放于此处的变量可使用ACC直接读写,故读写速度最快,生成的代码最少idata此类型变量在内部RAM中256字节中,其中前128字节与data型是同一片内存空间,只是读写方式不同(使用Rx寄存器),读写速度比data慢xdata此类型变量存放与外部RAM中,范围0x0000~0xffff,最大64Kb空间(实际可能没有这么多,例如有2kb),使用DPTR访问,速度较慢code此类型变量被当作代码存储于RO原创 2020-05-17 23:54:50 · 1250 阅读 · 0 评论 -
使用Proteus仿真STM32疯狂报警告的解决方法
点击开始仿真后,警告数量疯狂上涨(我只打开了不到五秒,就窜到了八千多):而且打开查看后错误信息基本上一样:解决方法是设置晶振频率。默认是这样:将这一栏改成具体的频率,比如8M改完后再仿真就没问题了(其中的警告是说由于计算机CPU速度问题无法做到实时仿真,问题不大):...原创 2020-04-30 21:13:10 · 5241 阅读 · 1 评论 -
基于MSP430G2553的闹钟
基于MSP430G2553的闹钟硬件部分四位数码管(F3461AH)*238译码器(74LS138)*1MSP430G2553单片机微动按键*1软件实现使用TimerA0进行时间计数,每1000ms进入一次CCR0中断,执行时间逻辑:秒钟变量加到60则清零并将分钟变量加一分钟变量加到60则清零并将小时变量加一,小时变量加到24则清零...原创 2020-03-28 17:46:46 · 1101 阅读 · 7 评论