我正在使用pic16f1823生成100个遥控器,我需要每个遥控器的唯一id,但随着时间的推移,它应该是恒定的,所以我认为在用mplab编译器编程之前生成一个随机数更好,然后编译这100个遥控器,我不想手动更改remote_id。
#include "mcc_generated_files/mcc.h"
#define remote_id 33800
char col;
uint24_t data_out;
void Reset_state(void);
int Key(void);
int Key_prime(void);
void main(void)
{...请帮我解决这个问题
发布于 2017-08-28 03:30:00
应该可以将SQTP模式与IPE一起使用,如此处所述。
http://microchipdeveloper.com/ipe:serial-quick-turn-programming-sqtp-settings
发布于 2018-09-20 20:00:52
您是否可以在生产中使用一个脚本来更改ihex文件,使您的序列号在EEPROM ( EE )中显示不同,因为大多数图片都有1k的内部EE用于数据存储?然后遥控器将从EE位置读取其唯一序列号。这将是一个‘`gawk’的简单工作,比如说...
发布于 2019-01-24 16:49:14
使用MPLAB IPE中的SQTP功能。您需要进入“高级模式”,并首先登录IPE。
在SQTP选项卡中,将其设置为将EEPROM中的值保存为'Raw Data',存储地址为0x00。按下'Generate‘,它会为你写一个sqtp文件。
在“操作”选项卡中,在选择.hex文件的字段下选择SQTP文件。
每次刷新新的mcu时,IPE将递增到SQTP文件中的下一个值,甚至会在两个会话之间进行跟踪。
您可以在代码中使用以下代码来检索数据:
unsigned char EEPROM_ReadByte(unsigned char eepromAddress)
{
while(RD || WR); // check the WR&RD bit to see if a RD/WR is in progress
EEADR=eepromAddress; // Write the address to EEADR.
RD = 1; // Set the RD bit to trigger the eeprom read operation.
return(EEDATA); // Return the data read form eeprom.
}调用EEPROM_ReadByte,传入0x00,它将从您的数据中返回一个字符。递增eepromAddress,然后返回第二个字符,依此类推。
请注意,您的数据将是相反的顺序,我不确定为什么,这可能是由于SQTP文件的编码方式。
https://stackoverflow.com/questions/45158728
复制相似问题