HLJU
前提
一、点灯
(1)图形配置
(2)代码实现
- 主函数中添加–代码只执行一次
- while中添加–代码一直执行
- 相关代码
- HAL_GPIO_WritePin(led0_GPIO_Port, led0_Pin, 1);
(用户自定义名字的引脚组,用户自定义的引脚号,1是输出高电平) - HAL_GPIO_TogglePin(led0_GPIO_Port, led0_Pin);
(用户自定义名字的引脚组,用户自定义的引脚号) - HAL_Delay(100);
(写100延时100ms)
- HAL_GPIO_WritePin(led0_GPIO_Port, led0_Pin, 1);
(3)例子
HAL_GPIO_WritePin(led1_GPIO_Port, led1_Pin, 1);//给高
HAL_Delay(100);//100ms后
HAL_GPIO_WritePin(led1_GPIO_Port, led1_Pin, 0);//给低
HAL_Delay(100);//100ms后
二、LCD1602
(1)图形配置
(2)代码实现
- 加载头文件
- #include “lcd1602.h”
- #include “stdio.h”
- 主函数中初始化LCD1602
- LCD_Init();
- 向屏幕写字符串
- LCD_Puts(3, 0, “I LOVE YOU”);(3列,1行 ”XXXXX“)最好16个XXXX
- 将数值转化成字符写到屏幕
- 定义temp:----uint8_t temp[16];
- 定义adcvalue:----uint32_t adcvalue=0;
- sprintf(temp,“ADC = %d”,adcvalue);将adcvalue变成字符型temp ”是temp的内容“
- LCD_Puts(0, 1, temp);//将整形变量写入屏幕
三、外部中断按键
(1)图形配置
(2)代码实现
- 回调函数实现 写主函数外面
- void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
- void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
- 回调函数实现模板
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == key_Pin) // 固定 =自定义的引脚号
{
//用户代码
}
}
四、定时器
(1)图形配置
(2)代码实现
- 计算公式
xxxus = x1*x2/8 其中x1 Pr;x2是Pe
- 模板在主函数外面写
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if( htim == &htim2 )
{
//HAL_GPIO_TogglePin(led0_GPIO_Port, led0_Pin);
//HAL_GPIO_WritePin(led0_GPIO_Port, led0_Pin, 1);
}
} - 初始化操作
在主函数中写启动定时器的函数 HAL_TIM_Base_Start_IT(&htim2);
五、串口
(1)图形配置
(2)代码实现
- HAL_UART_Transmit(&huart1, a, sizeof(a), 0xffff);
(哪个串口,发送哪个变量,这个变量的大小,时间500/0xffff) - 定义变量 uint8_t a[32]=“HELLO WORD”; / uint8_t a[32];
- 计算变量大小sizeof(a)
- 如果写在主函数 执行一次
- 如果写While中一直执行
- 如果发送ADC到串口
- sprintf(temp,“ADC = %d”,adcvalue);将adcvalue变成字符型temp ”是temp的内容“
- HAL_UART_Transmit(&huart1, temp, sizeof(temp), 0xffff);//将ADC写入串口黑框框
六、ADC
(1)图形配置
(2)代码实现
HAL_ADC_Start(&hadc1);//启动ADC(ADC几)
HAL_ADC_PollForConversion(&hadc1, 500);(等待读取数值)(ADC几,等待时间)
adcvalue=HAL_ADC_GetValue(&hadc1);//将读取到的值给adcvalue
adcvalue是定义的变量:uint32_t adcvalue=0;必须32位 在主函数中定义
(3)例子
uint32_t adcvalue=0;
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 500);
adcvalue=HAL_ADC_GetValue(&hadc1);
sprintf(temp,"ADCgg = %d",adcvalue);//将整型转化为字符型 只有字符型才能用下面两个函数显示
//LCD_Puts(0, 1, temp);//lcd显示ADC数值
HAL_UART_Transmit(&huart1, temp, sizeof(temp), 0xffff);//串口显示ADC数值