一.串口
//*串口专用变量
uint16_t counter = 0;
uint8_t str[40];
uint32_t rx_buffer;
void Usart_Proc(void);
//*串口接收中断打开
// HAL_UART_Receive_IT(&huart1, (uint8_t *)(&rx_buffer), 4);
void Usart_Proc(void)
{
if((uwTick - uwTick_Usart_Set_Point)<1000) return;//减速函数
uwTick_Usart_Set_Point = uwTick;
// sprintf(str, "%04d:Hello,world.\r\n", counter);
// HAL_UART_Transmit(&huart1,(unsigned char *)str, strlen(str), 50);
// if(++counter == 10000)
// counter = 0;
}
//串口接收中断回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
counter++;
sprintf(str, "%04d:Hello,world.\r\n", counter);
HAL_UART_Transmit(&huart1,(unsigned char *)str, strlen(str), 50);
HAL_UART_Receive_IT(&huart1, (uint8_t *)(&rx_buffer), 4);
}
二.iic
//*EEPROM的相关变量
//uint8_t EEPROM_String_1[5] = {0x11,0x22,0x33,0x44,0x55};
//uint8_t EEPROM_String_2[5] = {0};
//*4017相关变量
//uint8_t RES_4017;
/*外设使用基本配置*/
//*EEPROM测试
// iic_24c02_write(EEPROM_String_1, 0, 5);
// HAL_Delay(1);
// iic_24c02_read(EEPROM_String_2, 0, 5);
//
// //*MCP4017测试
// write_resistor(0x77);
// RES_4017 = read_resistor();
三.定时器
//*pwm相关变量
//uint16_t PWM_T_Count;
//uint16_t PWM_D_Count;
//float PWM_Duty;
// BASIC_TIM6_Init();
// PWM_INPUT_TIM2_Init();
// SQU_OUTPUT_TIM15_Init();
// PWM_OUTPUT_TIM3_Init();
PWM_OUTPUT_TIM17_Init();
__HAL_TIM_SET_AUTORELOAD(&htim17, 499);//PA7(黄色)的频率为2000hz
//*打开基本定时器
HAL_TIM_Base_Start_IT(&htim6);//每100ms触发一次中断
//
// //*输入捕获PWM启动
// HAL_TIM_Base_Start(&htim2); /* 启动定时器 */
// HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1); /* 启动定时器通道输入捕获并开启中断 */
// HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_2);
//
// //*输出方波PA2引脚
// HAL_TIM_OC_Start_IT(&htim15,TIM_CHANNEL_1);
//
// //*启动定时器3和定时器17通道输出
// HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); //PA6
HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1); //PA7
//基本定时器6更新回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance==TIM6)
{
// if(++counter == 10)
// {
// counter = 0;
// sprintf(str, "Hello,world.\r\n");
// HAL_UART_Transmit(&huart1,(unsigned char *)str, strlen(str), 50);
// }
}
}
//输入捕获PWM中断回调
//void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
//{
// if(htim->Instance==TIM2)
// {
// if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)
// {
// PWM_T_Count = HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1)+1;
// PWM_Duty = (float)PWM_D_Count/PWM_T_Count;
// }
// else if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
// {
// PWM_D_Count = HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_2)+1;
// }
// }
//}
四.RTC
//*rtc相关变量
//RTC_TimeTypeDef H_M_S_Time;
//RTC_DateTypeDef Y_M_D_Date;
// //*RTC内容显示
// HAL_RTC_GetTime(&hrtc, &H_M_S_Time, RTC_FORMAT_BIN);//读取日期和时间必须同时使用
// HAL_RTC_GetDate(&hrtc, &Y_M_D_Date, RTC_FORMAT_BIN);
// sprintf((char *)Lcd_Disp_String, "Time:%02d-%02d-%02d",(unsigned int)H_M_S_Time.Hours,(unsigned int)H_M_S_Time.Minutes,(unsigned int)H_M_S_Time.Seconds);
// LCD_DisplayStringLine(Line4, Lcd_Disp_String);