
STM8S003无法检测到引脚电平
STM8 @svlreg 问题
STM8AF62XX+L99PM62GXP LIN通讯的电路原理图有吗?官网提供了一套软件,没找到对应的原理图,请大家指教一下
求一个STM8S207例程
初次接触STM8,请问在STVD中,为什么这个Struct会报错
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
你的sdata是什么类型的?
如果是unsigned char类型的,那么结果是0x80或0x00;肯定不会出现1
你要想出现1,则必须写成:
sdata = ( k & 0x80 ) && 0x80;
或者写成:
sdata = ( k & 0x80 )>>7;
或者写成:
sdata = ( k & 0x80 )?1:0;
说到底,这个是C语言功底的问题。
这个思路考虑过得,sdats是STM8的PC3位定义,问题已经解决,本帖的关键是同一个取最高位的语句在两个开发环境下的不同结果:
sdata = ( k & 0x80 ); //串行数据位取显示段码数据位的最高位
谢谢关注
这个问题解决方法很多,心里老是感觉别扭
刚刚看到。我在模拟串口LCD是初中常用取位函数,高低都可从来不出问题。我的做法通常不是将取位bit直接输出,而是有个中间变量获得后输出。例如:
//Write 1 byte to LCD,dt
void b2l(unsigned char dt,unsigned char com){
unsigned char i;
reg=com;//数据或命令寄存器
for(i=0;i<8;i++){
if(dt&0x80){dat=1;}else{dat=0;};//判断高位
dt=dt<<1;
wri();//调用写脉冲
}
}
如果是取低位,则与0x01与,左移即可。
评分
查看全部评分
这个PC_ODR_ODR3是什么东东?是操作寄存器的?还是直接操作寄存器的一bit的?如果是操作寄存器的,字节处理,那肯定就不对了,是一个字节赋值,永远是高位。
评分
查看全部评分