赞
踩
1.)
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart,
const uint8_t *pData,
uint16_t Size,
uint32_t Timeout);
osThreadId_t:返回创建任务的ID
osThreadFunc_t:void (*osThreadFunc_t) (void *argument):函数指针类型,任务的入口函数
void *argument:传递给任务入口函数的参数
const osThreadAttr_t *attr:用于描述任务的属性
eg:HAL_UART_Transmit(&huart1, "Hello World\r\n", sizeof("Hello World\r\n") - 1, 1000);
2.)
int fputc(int ch, FILE* f)//将printf串口重定向
{ unsigned char HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, 1000);//重新实现fputc发送一个字符的功能
return ch; }
3.)
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
UART_HandleTypeDef *huart:从哪个串口中接收数据
uint8_t *pData:数据保存的地址
uint16_t Size:一次需要接收多少个字节数据
HAL_StatusTypeDef:是否成功开启串口接收
调用该函数接收到数据后会进入中断处理函数执行相关操作代码
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//中断处理函数原型
DAM是受CPU指令来处理数据的控制器,调用DAM后,相关功能由DMA控制器实现,CPU只有执行这条代码的消耗而无需进行数据处理,可以直接继续执行下面的代码
HAL_UART_Transmit_DMA(&huart1, "dwa", 10000);
HAL_UARTEx_ReceiveToIdle_DMA(&huart1, Rx_data, 100);//DMA的中断处理函数
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)//DMA的接受函数,接收后空隙触发空闲中断,空闲中断后要再次调用本函数,才能继续接受串口数据,触发空闲终端。
- double a=0;
-
- HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);
- while (1)
- {
-
-
- HAL_ADC_Start(&hadc);//打开ADC采样
- //获取adc采样值
- ADC_Value= HAL_ADC_GetValue(&hadc);
- a=999-(ADC_Value/4095.0f*999.0f);
- TIM3->CCR3=a;
- printf("adc:%d,%lfv\r\n",ADC_Value,((double)ADC_Value/4096*3.3));
- HAL_Delay(50);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。