这部分内容应该是必考的吧 引脚为PB15和PB12
double getADC(ADC_HandleTypeDef *pin)
{
uint adc;
HAL_ADC_Start(pin);
adc=HAL_ADC_GetValue(pin);
return adc*3.3/4096;
}
这部分内容十分简单因为此处内容直接调用官方给的软件IIC,此单片机还有硬件IIC。
引脚部分在给的代码里面有,所以可以不用配置引脚
这里我们用到的芯片为AT24C02
uchar eeprom_read(uchar addr)
{
uchar dat;
I2CStart();//I2C开启
I2CSendByte(0xa0);//0xa0表示写入
I2CWaitAck();
I2CSendByte(addr);//发送地址
I2CWaitAck();
I2CStop();//关闭I2C
I2CStart();
I2CSendByte(0xa1);//0xa1表示读取
I2CWaitAck();
dat=I2CReceiveByte();//读取发送的地址
I2CWaitAck();
I2CStop();
return dat;//返回值
}
uchar eeprom_write(uchar addr,uchar dat)
{
I2CStart();
I2CSendByte(0xa0);//写地址
I2CWaitAck();
I2CSendByte(addr);//地址空间
I2CWaitAck();
I2CSendByte(dat);//存入的数据
I2CWaitAck();
I2CStop();
}
//实例代码
if(key[3].single_sta==1)
{
uchar fre_h=fre1>>8;
uchar fre_l=fre1&0xff;//分别写入频率的低八位和高八位
eeprom_write(1,fre_h);
HAL_Delay(10);
eeprom_write(2,fre_l);
key[3].single_sta=0;
}
uint eep=(eeprom_read(1)<<8)+eeprom_read(2);//读取1和2地址的数据并将其整合。
本文章使用limfx的vscode插件快速发布