蓝桥杯物联网竞赛_STM32L071KBU6_手动配置代码分析

大概还有八天国赛,好久没练了,手动配置的代码又有些生疏了,再来回顾回顾

void OLED_Write(unsigned char type, unsigned char data){  // 主要是给显示屏写指令 
	unsigned char WriteData[2];
	WriteData[0] = type;
	WriteData[1] = data;
	HAL_I2C_Master_Transmit(&hi2c3, 0x78, WriteData, 2, 0xff);  // 函数是主机发送给显示屏用的i2c3线 
}

void Function_OledInit(unsigned char ms){
	HAL_GPIO_WritePin(OLED_Power_GPIO_Port, OLED_Power_Pin, GPIO_PIN_RESET);
	HAL_Delay(ms);  // 这里延时一下是等主机通上电再调用初始化函数写指令 
	OLED_Init();  // 写指令 
}


/*
   初始化指令不用返还数据
   取数据指令会返还数据
   用的spi1线 
*/ 
unsigned char SPI_WriteRead(unsigned char address, unsigned char data){
	unsigned char TxData[2], RxData[2];
	TxData[0] = address;
	TxData[1] = data;
	HAL_GPIO_WritePin(SPI1_NSS_GPIO_Port, SPI1_NSS_Pin, GPIO_PIN_RESET);  // 片选 
	HAL_SPI_TransmitReceive(&hspi1, TxData, RxData, sizeof(TxData), 0xff);
	HAL_GPIO_WritePin(SPI1_NSS_GPIO_Port, SPI1_NSS_Pin, GPIO_PIN_SET);
	return RxData[1]; 
}

float* Function_AdcGet(unsigned char ms){
	uint16_t AdcData[2];
	static float AdcValue[3];
	for(unsigned char i = 0; i < 2; i ++){
		HAL_ADC_Start(&hadc); 
		HAL_ADC_PollForConversion(&hadc, 0xff);  // 等待轮转 
		AdcData[i] = HAL_ADC_GetValue(&hadc);
		AdcValue[i] = AdcData[i] * 3.30f / 4095;
		HAL_Delay(ms); 
	}
	HAL_ADC_Stop(&hadc);
	AdcValue[2] = AdcValue[0];
	AdcValue[0] = AdcValue[1];
	AdcValue[1] = AdcValue[2];
	return AdcValue;
}



void Function_SendMsg(const char* data, uint16_t len){
	HAL_UART_Transmit(&huart2, data, len, 0xff);
}

void Function_ReceiveMsg(char* data, uint16_t len){
	HAL_UART_Receive(&huart2, data, len, 0xff); 
}

// << 8 等效 * 2 ^ 8 
float Function_GetTemp(){
	unsigned char Data[2];
	Data[0] = 0x24;
	Data[1] = 0x0b;
	HAL_I2C_Master_Transmit(&hi2c1, 0x94, Data, 2, 0xff);  // 向外设发送获取温度指令 
	HAL_I2C_Master_Receive(&hi2c1, 0x95, Data, 2, 0xff);  // 接收获取的温度数据 
	return (float) (Data[0] << 8 | Data[1]) * 175.0 / 65535 - 45;  // 转换返还 
}

再次分析一下在于OLED用的是i2c3,温度用的是i2c1,LORA用的是spi1,串口用的uart2,剩下就是一个adc了
配置对应引脚也是相应的配就可以了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用芯片表贴芯片表贴电阻电容STM封装库AD库(ATIUM PCB封装库): PCB Library : 常用芯片表贴芯片表贴电阻电容STM封装库AD库(ATIUM PCB封装库).PcbLib Date : 2021/5/14 Time : 16:14:01 Component Count : 463 Component Name ----------------------------------------------- LC-12-DIPH-300 LC-0201 LC-0201_C LC-0201_L LC-0201_R LC-0402 LC-0402_C LC-0402_L LC-0402_R LC-0402_Rx2 LC-0402_Rx4 LC-0603 LC-0603_C LC-0603_Cx4 LC-0603_L LC-0603_LED LC-0603_R LC-0603_Rx2 LC-0603_Rx4 LC-0805 LC-0805_C LC-0805_L LC-0805_LED LC-0805_R LC-1206 LC-1206_C LC-1206_L LC-1206_R LC-1210 LC-1210_C LC-1210_R LC-1806 LC-1806_C LC-1806_L LC-1806_R LC-1808 LC-1808_C LC-1808_L LC-1808_R LC-1812 LC-1812_C LC-1812_L LC-1812_R LC-1825 LC-1825_C LC-1825_L LC-1825_R LC-2010 LC-2010_C LC-2010_L LC-2010_R LC-2220 LC-2220_C LC-2220_L LC-2220_R LC-2225 LC-2225_C LC-2225_R LC-2512 LC-2512_C LC-2512_L LC-2512_R LC-ABS LC-BGA-14 LC-BGA-84_7.5x12.5mm LC-BGA-121 LC-BGA-143 LC-BR-3 LC-BR-6 LC-BR-10 LC-CASE 017AA-01 LC-CASE-A_3216 LC-CASE-B_3528 LC-CASE-C_6032 LC-CASE-D_7343 LC-CASE-E_7343 LC-CASE-P_2012 LC-CASE-R_2012 LC-DB LC-DBS LC-DFN-2L LC-DFN-8_3x3mm LC-DFN-8_5x6mm LC-DFN-10_3x3mm LC-DFN-10_EP_3x3mm LC-DIP-4 LC-DIP-5 LC-DIP-6 LC-DIP-7 LC-DIP-8 LC-DIP-14 LC-DIP-16 LC-DIP-18 LC-DIP-20 LC-DIP-24_300mil LC-DIP-24_600mil LC-DIP-28_300mil LC-DIP-28_600mil LC-DIP-40 LC-DO-15 LC-DO-27 LC-DO-35 LC-DO-41 LC-DO-201AD LC-DO-213AA LC-DO-213AB LC-DO-218AB LC-DSON-10 LC-FBGA-84_9x12.5mm LC-FBGA-96_8x14mm LC-FBGA-256 LC-FBGA-272 LC-FBGA-289 LC-FBGA-484 LC-FBGA-780 LC-GBJ LC-GBU LC-GDTs_SMD LC-GDTs_THT LC-HC-49S LC-HC-49SMD LC-HC-49U LC-HTSSOP-32 LC-HVMDIP LC-HVQFN-32_5x5x05P LC-HZIP25-P-1.27 LC-KBJ LC-KBL LC-KBP LC-KBPC LC-KBU LC-LBS LC-LFBGA-217 LC-LFCSP-8_3x2x05P LC-LFCSP-8_3x3x05P LC-LFCSP-16_4x4x05P LC-LFCSP-20_4x4x05P LC-LFCSP-24_4x4x05P LC-LFCSP-28_5x5x05P LC-LFCSP40_6x6x05P LC-LFCSP56_8x8x05P LC-LGA-8_3x5mm LC-LGA-14_3x5mm LC-LGA-16_3x3mm LC-LGA-16_4x4mm LC-LL-34 LC-LL-35 LC-LL-41 LC-LPCC-148 LC-LQFP-32_7x7x08P LC-LQFP-44_10x10x08P LC-LQFP-48_7x7x05P

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值