
❀在此真诚感谢每一个关注和支持我的人,你们是我坚持创作的动力❀
机缘
最初的最初
- 最初写博客的想法是老哥带给我的,那时候我还是本科,是一名码农。
- 我想通过写博客的方式记录我的每天的生活,然后每周总结一下我一周学习到的代码技巧。
- 但是由于缺乏有效的激励,并没有坚持下去,写了几天就放弃了。
- 最早的时候我是使用博客园记录的,但是博客园没有推广,很少有人能看到我的文章。
课设和项目
- 本科学习汇编语言的时候,美女老师要求我们交作业要用写博客的形式,自此我的博客园又多了很多汇编的作业文章。我们同学之间互相评阅,也会互相点赞,还挺不错的hhh,他们会复制我的文章交作业😂。
- 后来大三跟着我的本科导师做项目,也写了几篇相关的博文总结我的学习经验django服务器搭建啥的hhh,没想到居然收获了好几千的阅读量,感觉很有成就感。
- 本科毕业之后就只是零零散散的写过几篇日记。
坚持创作
- 说实在的,我是个有好奇心但是三分钟热度,而且还懒的人,我愿意去了解一个新的概念(前提是我看得懂QAQ),但是很难坚持下来。
- 但是自从读研了之后,我的计算机技术基本快荒废了,为了找一个合适我控制工程专业方向的工作,我开始了电力电子方向的学习。
- 我现在能坚持创作其实要特别感谢我的老师,是他带我入门了电力电子,让我每周交周报,让我写博客都是他的主意。他说找工作的时候给对方看自己的博客就会很牛,我觉得很有道理,我便想要找一个大家都认可的博客平台,于是最终选择了咱们的CSDN。
- CSDN的推广和反馈激励真的特别好,能让我继续坚持到现在,甚至还能有一点点小小的收入👍。
- 以后我想我工作了之后也能保持起码一周三到五篇的坚持创作,让它成为我生活中的一个习惯!
收获
- 在这几个月的创作过程中,我收获了四百多个粉丝,7万多的阅读量和7条宝贵的评论,感谢你们对我创作的支持。
- 再和大家的交流中我也对我文章的内容有了更加深刻的认识。
- CSDN也会时不时给我推送一些行业内的重要资讯和会议,竞赛等等,虽然还没参加过,但是很大程度的开阔了我的眼界。
日常
- 创作现在已经是我日常生活的一部分了,我一般每天上午和下午会各创作一篇文章,首先会记录我的所学的知识,然后会把一些不懂得知识点去查资料并记录下来。
- 基本一篇文章要用30-60分钟来完成,在工作的空闲时间里是能够完成这个任务的
- 我的创作内容其实也就是我的学习的过程
成就
- 下面是我在STM32G4 电机外设篇(三) TIM1 发波 和 ADC COMP DAC级联中创作的一串TIM代码,我觉得虽然有点难,但是代码的正确运行还是很有成就感的。
uint8_t adc1_in1, adc1_in2, adc1_in3;
float IA, IB, IC;
uint8_t ADC_offset, IA_Offset, IB_Offset, IC_Offset;
float load_data[5];
float temp[5];
uint8_t tempData[24] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0x7F};
/* USER CODE BEGIN 2 */
HAL_OPAMP_Start(&hopamp1);//使能运放
HAL_OPAMP_Start(&hopamp2);
HAL_OPAMP_Start(&hopamp3);
HAL_UART_Receive_IT(&huart3, (uint8_t *)&aRxBuffer, 1);
HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);//自校验,减少采样误差
HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED);
TIM1->ARR = 8000-1;
TIM1->CCR4 = 8000-2;
HAL_TIM_Base_Start(&htim1);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
HAL_ADCEx_InjectedStart_IT(&hadc1);
HAL_ADCEx_InjectedStart(&hadc2);
HAL_DAC_Start(&hdac3, DAC_CHANNEL_1);
HAL_DAC_SetValue(&hdac3, DAC_CHANNEL_1, DAC_ALIGN_12B_R, 3000);
HAL_COMP_Start(&hcomp1);
/* USER CODE BEGIN WHILE */
while(1)
{
HAL_ADC_Start(&hadc1);
HAL_ADC_Start(&hadc2);
Vpoten = HAL_ADC_GetValue(&hadc1);
adc_vbus = HAL_ADC_GetValue(&hadc2);
Vbus = adc_vbus * 3.3f/4096*26;
HAL_Delay(10);
}
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(GPIO_Pin);
if(Button2_Pin == GPIO_Pin)
{
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
}
if(Button3_Pin == GPIO_Pin)
{
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_1);
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_2);
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_3);
HAL_TIMEx_PWMN_Stop(&htim1, TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Stop(&htim1, TIM_CHANNEL_2);
HAL_TIMEx_PWMN_Stop(&htim1, TIM_CHANNEL_3);
}
}
//注入中断处理程序
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc)
{
static uint8_t cnt;
/* Prevent unused argument(s)compilation warning */
UNUSED(hadc);
if(hadc == &hadc1)
{
if(ADC_offset == 0)
{
cnt++;
adc1_in1 = hadc1.Instance->JDR1;
adc1_in2 = hadc2.Instance->JDR1;
adc1_in3 = hadc1.Instance->JDR2;
IA_Offset += adc1_in1;
IB_Offset += adc1_in2;
IC_Offset += adc1_in3;
if(cnt >= 10)
{
ADC_offset =1;
IA_Offset = IA_Offset/10;
IB_Offset = IB_Offset/10;
IC_Offset = IC_Offset/10;
}
}
else
{
adc1_in1 = hadc1.Instance->JDR1;
IA = (adc1_in1 - IA_Offset)*0.0193359375f;
adc1_in2 = hadc2.Instance->JDR1;
IB = (adc1_in2 - IB_Offset)*0.0193359375f;
adc1_in3 = hadc1.Instance->JDR2;
IC = (adc1_in3 - IC_Offset)*0.0193359375f;
TIM1->CCR1= 2000;
TIM1->CCR2= 4000;
TIM1->CCR3= 6000;
load_data[0] = IA;
load_data[1] = IB;
load_data[2] = IC;
load_data[3]= 0;
load_data[4]= 0;
memcpy(tempData,(uint8_t*)&load_data, sizeof(load_data));
HAL_UART_Transmit_DMA(&huart3,(uint8_t *)tempData, 6*4);
}
}
}
憧憬
- 在可预见的未来我还会继续创作
- 争取找到一个高薪的电力电子行业工作,能更好的发光发热
- 希望大家继续支持我❀