同城購物網(wǎng)站建設(shè)泰州百度關(guān)鍵詞優(yōu)化
目錄
串口中斷
定時(shí)器中斷
輸出pwm?
串口中斷
配置異步模式,使能中斷,選擇波特率。
串口接收中斷開啟? HAL_UART_Receive_IT(&huart1,data, 3);
回調(diào)函數(shù):
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
?? ?if(huart ->Instance == USART1)
?? ?{
?? ?printf ("接收到的數(shù)據(jù)是:%s \r\n",data);
?? ?LED_Control (0x03);
?? ?sprintf((char*)data ,"data: %c",data[0] );
?? ?LCD_DisplayStringLine(Line6,data);
?? ?HAL_UART_Receive_IT(&huart1, data ,3);//重新使能接收中斷,不然只進(jìn)一次
?? ?}
}
串口重定向:#include "stdio.h"
int fgetc(FILE *f)
{uint8_t ch;HAL_UART_Receive (&huart1 ,(uint8_t *)&ch,1,HAL_MAX_DELAY );return ch;
}
int fputc (int ch,FILE *f)
{HAL_UART_Transmit (&huart1 ,(uint8_t *)&ch,1,HAL_MAX_DELAY );return ch;
}
定時(shí)器中斷
高級(jí)定時(shí)器:TIM1 TIM8?
通用定時(shí)器: TIM2 TIM3 TIM4? TIM15 TIM16 TIM17?
基本定時(shí)器:TIM6 TIM7
?定時(shí)器頻率 = 80MHZ/分頻系數(shù)/計(jì)數(shù)值
定時(shí)時(shí)間 = (5000 * 8000)/ 80 000000 = 0.5 秒? ? ?7999? ?4999
1s :? 10000 * 8000 / 80 000000 = 1? ? ? ? ? ?9999? ? 7999??
100Hz :? 719? 999
打開定時(shí)器中斷: HAL_TIM_Base_Start_IT(&htim3 );
定時(shí)器中斷回調(diào)函數(shù):
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
?? ?if(htim -> Instance == TIM3)
?? ?{
?? ??? ?printf ("定時(shí)器中斷\r\n");
?? ?}
}
輸出pwm?
假如用定時(shí)器17,lcd顯示占空比,按下一次B1按鍵占空比加10。
打開pwm輸出??HAL_TIM_PWM_Start (&htim17 ,TIM_CHANNEL_1 );
?while(1)里:
?=========================================