当前位置: 首页 > news >正文

建设网站的注意事项网站建设售后服务安全维护

建设网站的注意事项,网站建设售后服务安全维护,企业网站可以备案个人,中职学校网站建设方案目录 LED与EXTI配置 基本定时器使用 软件定时器 在HAL库中实现printf 重点--记得自己添加头文件 队列实现 二值信号量实现 计数信号量实现 DMA实现 ADC配置 RTC配置 看门狗 窗口看门狗 FreeRTOS结合MX软件开发#xff0c;基础配置直接生成#xff0c;我们只…目录 LED与EXTI配置 基本定时器使用  软件定时器  在HAL库中实现printf  重点--记得自己添加头文件  队列实现  二值信号量实现 计数信号量实现 DMA实现 ADC配置 RTC配置 看门狗 窗口看门狗  FreeRTOS结合MX软件开发基础配置直接生成我们只需要会操作即可操作一些API函数注意事项就是我们需要知道有哪些函数是我们写的而哪些函数是软件自己生成的并且我们需要知道一个外设的使用流程 LED与EXTI配置 上下拉模式和触发模式不要选择错误 对于EXTI的我们只需要操作回调函数即可通过判断端口模式即可再按键中我是不赞成载中断里面使用延时函数的因此你需要学会如何避免延时函数比如由于按键抖动我们需要多次判断使用状态机的思维因此我们再设置的时候需要先关闭该中断等检测到了真实按键按下再打开就可以了  void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if(GPIO_Pin WK_UP_Pin){HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin); } } 除了第一次点open之外其余的情况点close不然会卡我也不知道为什么  基本定时器使用  基础定时器指TIM6、TIM7,能完成的功能是定时、触发中断或者DMA请求当计数器溢出产生更新事件并且只有该事件能引起中断或DMA请求不像其他定时器有很多中断类型。基本定时器只有更新中断 并且能输出触发信号TRGO---用于触发DAC同步电路   one pulse mode--表示是否使用定时器的单次定时模式意思就是当计数器发生下一次溢出事件时定时器就会停止计数一般我们不使用  这里的定时时间为3.64ms--使用串口打印检测时间是否符合   定时时间计算--period * (1*(psc1))/72M)    基本定时器的使用函数其中我们使用MX创建的定时器默认是不打开的因此我们需要手动打开一下至于使用哪一种方式打开取决于我们自己常用中断工作方式  遇到的问题我在TIM6的初始化函数中写了printf出不来结果原因是因为串口初始化没有完成它在TIM6后面因此无法在里面使用printf HAL_TIM_Base_Start_IT(htim6);void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {static uint16_t count 0;if(htim-Instance TIM6){count;if(count 100) {printf(enter time6\r\n);count 0;}} } //按理说是364ms打印一次 结果接近因此对于基础定时器我们需要开启定时器以及知道回调函数如何写即可  软件定时器  优先级、堆栈大小定时器指令队列长度  默认MX软件生成的定时器是没有打开的并且并没有设置周期因此你需要做两个操作设置周期、打开定时器 。但是做完这些操作后发现还是有错误原来是头文件没有加入 #include timers.hxTimerChangePeriod(MyTimer0Handle,pdMS_TO_TICKS(1000),portMAX_DELAY); xTimerStart(MyTimer0Handle,portMAX_DELAY);MyTimer0Handle---为定时器句柄 portMAX_DELAY-为阻塞时间因为定时器的实质是使用队列完成因此队列的接收数据和发送数据是存在阻塞时间的 在HAL库中实现printf  #include stdio.h//重定义fputc函数 int fputc(int ch, FILE *f) { while((USART1-SR0X40)0);//循环发送,直到发送完毕 USART1-DR (uint8_t) ch; return ch; } 重点--记得自己添加头文件  队列实现  没有套路记得加头文件直接配置好其余的我们只需要使用接收或者发送函数即可 if(KeyPress){KeyPress 0;if(KeyNum KEY0_PRESS){//装队列数据xQueueSend(myQueue01Handle,( void * )senddata,0);printf(KEY0_PRESS\r\n);// }if(KeyNum KEY1_PRESS){printf(KEY1_PRESS\r\n);//取队列数据并且对比对比成功led灯反转xQueueReceive(myQueue01Handle,( void * )recvdata,0);if(recvdata 9)HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin); }if(KeyNum WK_UP_PRESS){printf(WK_UP_PRESS\r\n);} } 二值信号量实现 一开始创建的信号量本来没有需要一开始就释放的但是在我实验的过程中我一开始就获取二值信号量获取成功了 if(KeyNum KEY0_PRESS) xSemaphoreGive(myBinarySem01Handle); if(KeyNum KEY1_PRESS) if( xSemaphoreTake( myBinarySem01Handle, ( TickType_t ) 0 ) pdTRUE )//获取成功printf(get suceess\r\n);elseprintf(get fail\r\n);if(KeyNum WK_UP_PRESS)if( xSemaphoreTake( myBinarySem01Handle, ( TickType_t ) 0 ) pdTRUE )//获取成功printf(get suceess2\r\n);elseprintf(get fail2\r\n);实验现象--按KEY1成功获取再按一次WK获取失败再按KEY0释放再按WK获取成功 计数信号量实现 定义好计数资源直接使用函数即可 DMA实现 DMA能实现循环接收因此在外设到存储器的时候(相当于ADC数据通过DMA传输到我们自己定义的数组中或者存储器中我们一般希望的都是连续接收并且这里定义了两个DMA一个收一个发 都是存储器到外设我们一般是常规模式不然会一直发送我们这里举例了数组--串口如果循环的话会一直发送陷入死循环因此这里的memory--外设是常规模式 外设除了内核之外的东西都是外设除了systick、NVIC、DMA其余基本都是外设 外设到寄存器指的就是串口或者ADC等外设的数据到我们自己定义的数组中或者存储芯片中 寄存器到外设一般都是数组到串口然后打印出来常用于串口 unsigned char s_buf[]hello world\r\n;HAL_UART_Transmit_DMA(huart1,s_buf,sizeof(s_buf)); 直接使用函数进行发送但是一般发送需要延时一会因为有时候被其他程序占了使用串口发送需要稍微延时一会此处一定要有延时否则需要加入判断DMA是否传输完成的标志unsigned char s_buf[]hello world 7676775645543546789876545\r\n;HAL_UART_Transmit_DMA(huart1,s_buf,sizeof(s_buf));while( hdma_usart1_tx.State HAL_DMA_STATE_READY ); //获取DMA的状态判断它是否准备好下一次其实就是上一次有没有完成所以上面的可以封装一下发送内容、发送的DMA、需要发送的串口 ADC配置 RTC配置 配置RTC时钟32.768KHZ 看门狗 在由单片机构成的微型计算机系统中单片机的工作常常会受到来自外界电磁场的干扰造成程序的跑飞而陷入死循环或者因为用户配置代码出现BUG导致芯片无法正常工作出于对单片机运行状态进行实时监测的考虑便产生了一种专门用于监测单片机程序运行状态的模块或者芯片俗称“看门狗”(watchdog)  简单说看门狗的本质就是定时计数器计数器使能之后一直在累加 而喂狗就是重新写入计数器的值时计数器重新累加 如果在一定时间内没有接收到喂狗信号表示MCU已经挂了便实现处理器的自动复位重启发送复位信号 喂狗是自己喂的比如设置时间为50ms那么你必须设置一个定时器定时在50ms之前喂狗不然系统会重启 clock prescaler是分频系数下面的reload value是重载值 Tout((4×2^prescaler) ×rlr) /32        Tout((4×2^PRER) ×RLR)/LSI时钟频率 其中 Tout 为看门狗溢出时间单位为 msprer 为看门狗时钟预分频值IWDG_PR 值范围为 0~7rlr 为看门狗的重装载值IWDG_RLR 的值 4×2^prer直接为IWDG counter clock prescaler的值 窗口看门狗  定时时间为4096*prescaler*window-641/32M 最小值为65最大值为127 prescaler 2^wdgtb wdgtb为2的时候的最小超时值--4096*2^2*(64-641/36M 在T和W之间喂狗的话会产生复位或者在规定的W-0X40没有喂狗就会复位
http://www.hkea.cn/news/14478677/

相关文章:

  • 网站备案 在哪里上海建筑设计公司排名前20
  • 优品惠网站建设需求泉港区住房和城乡规划建设局网站
  • 网站安全建设模板下载怎么进入网络管理系统
  • 龙华网站设计公司沂南网站建设
  • 官方网站建设的四个步骤湖南知名网络推广公司
  • 医药电子商务网站建设汽车之家在线官网
  • 遵义 网站建设东莞网站建设 鞋材厂
  • 西安市网站建设公司wordpress怎么登陆地址
  • 北京建设工程主管部门网站电子商务网站建设报告怎么写
  • 怎么做qq盗号网站潍坊网站建设哪家专业
  • 对网站的建议网站小样用什么做
  • 哪里有学做视频的网站3摄影网站设计
  • h5响应式网站怎样修改手机网站首页
  • 扬州市城乡建设局招标网站wordpress搜索 主题
  • 建筑学网站推荐哪些网站有设计缺点
  • 建设企业网站注意事项上海排名优化seo
  • 定制类网站建设互联网网站开发发展
  • 怎么打开域名网站winserverfrp可以做网站吗
  • 网页网站怎么做的个人网页制作成品
  • 想要网站导航推广找人网站
  • 宁波网站建设团队做微商有什么好的货源网站
  • 网站优化公司seo案例小清新wordpress主题
  • 企业网站素材图片设计网站哪个
  • 洛阳市网站建设网络营销推广方案内容
  • 网页游戏排行选择东莞网站推广及优化
  • wordpress安装腾讯云怎样进行站点优化
  • 梦里做他千百度网站网站源码搭建网站
  • 界首网站优化公司网站在哪里找
  • 秦皇岛网站seo无极
  • 建站模版旅游网站建设的费用明细