1.总结串口的发送和接收功能使用到的函数
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart,const uint8_t *pData,uint16_t Size,uint32_t Timeout)
HAL_StatusTypeDef:返回值类型,发送功能是否开启
UART_HandleTypeDef *huart:指针,指向发送串口
uint8_t *pData:指针,指向要发送的数据
uint16_t Size:数据的大小
uint32_t Timeout:超时时间
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size)
HAL_StatusTypeDef:返回值类型,接收功能是否开启
UART_HandleTypeDef *huart:指针,指向接收串口
uint8_t *pData:指针,指向接收数据的保存地址
uint16_t Size:接收数据的大小
HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart)
判断接收完成中断函数
每次接收到数据后会自动调用这个函数处理数据、每次接收完后都需要重新打开一次接收中断
2.总结DMA的作用,和DMA+空闲中断的使用方式
替代cpu处理一些较大的数据,减轻cpu负担
先保留接收到的数据,用空间中断的时间处理这份数据,再将保留数据的地址清空以处理下一份数据
3.使用PWM+ADC光敏电阻完成光控灯的实验
if(adc_val>2000)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
}
else if(adc_val<=2000)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
}