STM8 用哪个编译软件比较多
我都用过,给你简单讲讲。
操作:STM8比STM32简单,一样都可以用寄存器或者库的方式编写。
价格:STM8几乎都在10块以内,STM32几乎都在10块以上。
资料:STM8的资料很少,半年前到处找STM8的CAN资料,无果后上淘宝花了5块钱买了开发板资料,我看现在很多STM8的资料也跟上了,都带CAN了。
如果STM8使用库,不像STM32有库的PDF资料可以查。
但它有一个查询软件,你找到要用的函数后选择好参数,它会帮你自动生成函数,COPY到程序中就可以了。
那个软件是针对STM8S的,而对于STM8L也只能仅供参考,具体函数名称还是校对下再使用。
功能:STM8虽然小巧,但是该有的模块都有,串口、AD、IIC等。
STM32可用模块会比STM8更多。
总的来说:STM8就是低端的STM32。
怎样生成stm8的eeprom数据
这个问题我来回答你吧.第一,是你理解错了,手册并没有错,DUL为1时解锁.看程序:do{FLASH_DUKR = 0x56;FLASH_DUKR = 0xAE;}while((FLASH_IAPSR & 0x08) == 0);//等待解锁成功那个While的意思:如果FLASH_IAPSR 的BIT3位为0,那么,FLASH_IAPSR & 0x08 就会等于0,这个时候,((FLASH_IAPSR & 0x08) == 0)这个条件就成立,那么就会循环.相反,如果FLASH_IAPSR 的BIT3位为1,那么,FLASH_IAPSR & 0x08 就会等于0x08,这个时候,((FLASH_IAPSR & 0x08) == 0)这个条件就不会成立,那么就会退出循环.所以,DUL位为1才表示解锁,是你自己理解错了.第二个问题,所有的单片机存储方式分两种,一种是大端,另一种是小端,举例来说:unsigned short * P = (unsigned short *)0x0000;unsigned long *Q = (unsigned long *)0x0004;*P = 0x1234;*Q = 0x12345678那么,如果是小端存储,各个地址存储的内容应该如下:地址 00 01 02 03 04 05 06 07 0x34 0x12 XXX XXX 0x78 0x56 0x34 0x12小端比较好理解,如果是大端,各内容应该如下:地址 00 01 02 03 04 05 06 07 0x12 0x34 XXX XXX 0x12 0x34 0x56 0x78相信我这样举例子你应该明白了吧?STM8是大端方式,你向 unsigned int 类型的地址里写 0x55,那么被扩展成 0x0055如果是小端方式 0x00放在高半段,也就是地址 0x4001上,而0x4000上放0x55但是STM8是大端方式,所以 把低半段0x55放在高地址0x4001,而把高半段0x00放在低地址0x4000上.如果你想把0x55放在0x4000上,改一下函数:void EEPROM_WriteByte(unsigned int StartAddress) //写一个字节到EEPROM地址{unsigned int *EEPROM_Address,Address;Address = StartAddress;EEPROM_Address = (unsigned int *)Address;EEPROM_Unlock();*EEPROM_Address = 0x55;while((FLASH_IAPSR & 0x04) == 0);EEPROM_Lock();}把那个里面所有的 unsigned int 修改成 unsigned char
转载请注明出处51数据库 » stm8 软件优先级
Modest_