历史上的今天
今天是:2025年04月21日(星期一)
2020年04月21日 | STM8遇到的一些小问题
2020-04-21 来源:eefocus
1.编译器优化的问题
定义的局部变量如果后续没有用,会被编译器优化掉,如:
{
u32 va = 100;
va = 200;
//些处放断点 ,查看一下va的值,会发现根本不对。

}
如何避免优化?
{
__IO u32 va = 100;
va = 200;
//此处放断点,看一下值已经正常了。

}
__I 、__O 、 __IO的宏定义如下:

2. char类型会被当成unsigned char, 导致计算结果出错
{
char va = -40;
//这里放断点,看一下va的值 如下:

}
这是因为负数变成无符号数时,在内存中是其反码+1
-40 二进制为: 1010 1000
反码为: 1101 0111
补码为: 1101 1000 ——> 216
所以被当成是unsiged char 时会是216,显然会导致计算出错。
如何解决?
{
int8_t va = -40;
//放断点看一下:

}
int8_t定义如下:
![]()
就是说申明char类型时,一定要写成signed char 不然会被编译器认为是unsigned char
这点与我们在linux开发中是有区别的。
上一篇:STM8芯片死锁解锁方法
史海拾趣
|
测振仪的技术原理及测振仪的技术问题 测振仪的技术原理, 测振仪的技术问题: 现在的测振仪一般都采用压电式的,结构形式大致有二种:① 压缩式;② 剪切式,其原理是利用石英晶体和人工极化陶瓷(PZT)的压电效应设计而成。当石 ...… 查看全部问答> |
|
1月6日最新:57个IC电子通讯岗位,含简单介绍(平均20万以上) 比较急的职位 1.digital design,做音频,对数字的整个flow要很熟悉,对数模混合模块很熟悉,有降低功耗,减小面积这方面的经验,上海 2.dft,dft 2年左右,上海 3.analog,adc,dac,pll,5年以上,上海 4.AE,3年以上ANALOG DESIGN经 ...… 查看全部问答> |
|
大家好,有人问到如何实现会唱歌的玩具娃娃,就和市面上的玩具娃娃一样,按一下,会唱首歌,再按一下会笑,再按会说话什么的,因为本人从来不涉及硬件设计知识,所以没办法回答朋友的问题,现在请大家告诉我下这个玩具娃娃是怎么个设计实现原理,谢 ...… 查看全部问答> |
|
我是过三根了,都不好用,乱码 可能是115200的波特率太高,质量差的USB转串口不好使吧 有谁用过能在开发ARM9 mini2440时好用的USB转串口给推荐一下啊,谢谢了!… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 最近都在找资料,都没有找到关于液体点滴的优秀作品,哪位大侠有,请发我一份!谢谢! … 查看全部问答> |
|
再提供一个小作品:EK-STM3210E大容量仿真学习套件上市啦! 仿真器 - 内嵌ST-LINK II仿真器,支持STM32F10x标准系列和扩展总线系列Cortex-M3 MCU - USB2.0全速,USB供电 - 支持评估系统或用户目标系统仿真 - 下载速度大于5K/秒 - 通过跳线 ...… 查看全部问答> |
|
用的芯片是STM8S103F3.使用串口1,内部时钟,查询发送,中断或者查询接收疑问:STM8的管教复用是不是,你配置了串口,那么相应的两个管脚IO就自动成为RXD和TXD?现在的把收发两个管脚直接短路,程序里面一直在发送,用万用表测试电压为1.8V左右,估 ...… 查看全部问答> |
|
请问,TI的28335DSP. 给GPIO配置为数字IO,且为输入,当给其输入高低电平的时候,为什么在GPxDAT寄存器中看到的状态和输入的状态不同,有时候改变输入电平后,但GPxDAT中的电平还是不变 [ 本帖最后由 kikihi 于 2012-12-15 14:36 编辑 ]… 查看全部问答> |




