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

基于jsp的购物网站开发wordpress百度分享

基于jsp的购物网站开发,wordpress百度分享,wordpress+外网无法访问,汕头网络公司网站建设HAL STM32G4 TIM1 3路PWM互补输出VOFA波形演示 ✨最近学习研究无刷电机驱动#xff0c;虽然之前有使用过#xff0c;但是在STM32上还没实现过。本文内容参考欧拉电子例程#xff0c;从PWM驱动开始学习。 欧拉电子相关视频讲解#xff1a; STM32G4 FOC开发实战—高级定时器发… HAL STM32G4 TIM1 3路PWM互补输出VOFA波形演示 ✨最近学习研究无刷电机驱动虽然之前有使用过但是在STM32上还没实现过。本文内容参考欧拉电子例程从PWM驱动开始学习。 欧拉电子相关视频讲解 STM32G4 FOC开发实战—高级定时器发波 ✨本篇重点学习如何配置PWM互补输出和死区时间计算和设定。有关VOFA数据传输协议可以参考《VOFA上位机三种协议FireWaterJustFloatRawDataC语言参考代码》 STM32CubeMX工程配置 时钟配置 定时器1TIM1配置 计数值8000、计数方式采用中心对称方式、时钟分频系数:2 死区时间配置TIMx timer deadtime register 2 (TIMx_DTR2)(x 1, 8, 20) Dead Time:120,其值对应的二进制值B0111 1000 DTGF[7:5] 0xx DTF DTGF[7:0]x tdtg with tdtg tDTS.死区时间换算120/160MHz/21.5us ✨死区时间参数需要根据具体使用的MOS型号参数来调整。 逻辑分析仪死区时间测量 如果上的Dead Time配置为160其对应的二进制值B1010 0000 DTGF[7:5] 10x DTF (64DTGF[5:0])xtdtg with Tdtg 2xtDTSDead Time配置为160对应的死区时间换算2*6432/160MHz/22.4us 如果上的Dead Time配置为200其对应的二进制值B1100 1000: DTGF[7:5] 110 DTF (32DTGF[4:0])xtdtg with Tdtg 8xtDTS.Dead Time配置为200对应的死区时间换算8*328/160MHz/24us 如果上的Dead Time配置为230其对应的二进制值B1110 0110: DTGF[7:5] 111 DTF (32DTGF[4:0])xtdtg with Tdtg 16xtDTSDead Time配置为230对应的死区时间换算16*326/160MHz/27.6us STM32CubeMX串口DMA配置 主要时为了使用VOFA串口调试工具来显示图形数据观测。如果自己有逻辑分析仪的话这一点可以忽略。 配置串口并开启DMA ⚡开启DMA一定要勾选对应中断 业务代码完善 重新给定各通道计数值。开启PWM输出。 TIM1-CCR1 2000;TIM1-CCR2 5000;TIM1-CCR3 4000;HAL_TIM_Base_Start(htim1);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_2);HAL_TIMEx_PWMN_Start(htim1,TIM_CHANNEL_3);串口相关的代码根据个人需求copy相应内容注意勾选Use microLIB选项 #include stdio.h #include usart.h #include string.h #include stdarg.h //使用printf()发送数据需要对printf函数进行重定向且只能使用USART1。 // 重定向fputc函数使用printf()发送数据 int fputc(int ch, FILE *f) {// 参数1串口句柄参数2要发送的数据参数3要发生数据的长度参数4超时等待时间HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, 100);return ch; } //DMA发送本项目中使用的方法 // DMA模式 void log_DMA(const char *format, ...) {va_list args; // 定义参数列表变量va_start(args, format); // 从format位置开始接收参数表放在arg里面char strBuf[256]; // 定义输出的字符串vsprintf(strBuf, format, args); // 使用vsprintf将格式化的数据写入缓冲区va_end(args); // 结束可变参数的使用// 等待上次的数据发送完成避免新的数据覆盖正在传输的数据导致混乱while (HAL_UART_GetState(huart1) HAL_UART_STATE_BUSY_TX){// Wait for DMA transfer to complete}HAL_UART_Transmit_DMA(huart1, (uint8_t *)strBuf, strlen(strBuf)); }//中断式发送 // 中断模式 void log_IT(const char *format, ...) {va_list args; // 定义参数列表变量va_start(args, format); // 从format位置开始接收参数表放在arg里面char strBuf[256]; // 定义输出的字符串vsprintf(strBuf, format, args); // 使用vsprintf将格式化的数据写入缓冲区va_end(args); // 结束可变参数的使用// 等待上次的数据发送完成避免新的数据覆盖正在传输的数据导致混乱while (HAL_UART_GetState(huart1) HAL_UART_STATE_BUSY_TX){// Wait for transfer to complete}HAL_UART_Transmit_IT(huart1, (uint8_t *)strBuf, strlen(strBuf)); }//使用sprintf()函数阻塞式发送 // 堵塞模式 void log(const char *format, ...) {va_list args; // 定义参数列表变量va_start(args, format); // 从format位置开始接收参数表放在arg里面char strBuf[256]; // 定义输出的字符串vsprintf(strBuf, format, args); // 使用vsprintf将格式化的数据写入缓冲区va_end(args); // 结束可变参数的使用HAL_UART_Transmit(huart1, (uint8_t *)strBuf, strlen(strBuf), HAL_MAX_DELAY); }main函数代码 int main(void) {/* USER CODE BEGIN 1 */float temp[3];uint8_t TempData[16];/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();MX_TIM1_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */ // TIM1-PSC 30000;//VOFA上位机观测开启 // TIM1-ARR 10000;TIM1-CCR1 2000;TIM1-CCR2 5000;TIM1-CCR3 4000;HAL_TIM_Base_Start(htim1);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_2);HAL_TIMEx_PWMN_Start(htim1,TIM_CHANNEL_3);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */if((GPIOC-IDR GPIO_PIN_0) ! 0){temp[0]1.0f;}else{temp[0]0.0f;}if((GPIOC-IDR GPIO_PIN_1) ! 0){temp[1]3.0f;}else{temp[1]2.0f;}if((GPIOC-IDR GPIO_PIN_2) ! 0){temp[2]5.0f;}else{temp[2]4.0f;}TempData[12] 0x00;//写入结尾数据TempData[13] 0x00;TempData[14] 0x80;TempData[15] 0x7f;memcpy(TempData,(uint8_t*)temp,sizeof(temp)); // HAL_UART_Transmit(huart1, (uint8_t *)TempData, 16, 100);HAL_UART_Transmit_DMA(huart1, (uint8_t *)TempData, 16);}/* USER CODE END 3 */ }串口上位机VOFA配置 首先对工程代码修改调整定时器分频系数以及计数值 TIM1-PSC 30000;//VOFA上位机观测开启TIM1-ARR 10000;串口上位机VOFA配置 参数配置 打开串口后添加参数显示到显示控件中 波形显示 工程源码 链接https://pan.baidu.com/s/19iAekOOqH-2pB3TjZoZFhw?pwdt2q0 提取码t2q0
http://www.hkea.cn/news/14589942/

相关文章:

  • 怎么建立购物网站怎么在百度上做广告
  • 无锡嘉饰茂建设网站有什么网站可以做深圳初二的试卷练习
  • 中国建设银行北京分行门户网站公告pi币最新消息
  • 菏泽做网站建设找哪家太和网站建设
  • wordpress怎么设置语言设置中文抖音seo优化软件
  • 宝安设备网站设计修改wordpress的首页
  • 天津网站建设招标网页微信版登陆看不到聊天记录吗
  • 青之峰网站建设网站建设延期报告
  • 如何创建自己公司网站代码外包平台
  • 会小二也是做会议网站的如何免费建设自己稳定的网站
  • 营销网站的渠道构成基本包括wordpress文章分页共多少页
  • 要怎么才能建设一个网站北京建网站公司怎么样
  • 兰州网站建设兰州wordpress没有权限
  • 绵阳做手机网站广州市番禺区建设局网站
  • 网站建设服设计一个外贸网站需要多少钱
  • 90设计网站几次是什么意思微商管理系统
  • 专业做冻货的网站太原网站建设方案开发
  • 做免费嗳暧视频网站dw怎么做网站地图
  • 网站文章更新怎么做登陆网站取消备案
  • 网站开发手机app焦作建设厅网站
  • 做网站全是别人的链接有了网站 怎么做排名优化
  • 网站建设那种语言好做暧暧网站在线观看
  • 网站建设书本网页翻译软件哪个好用
  • 网站建设的需求是什么意思印尼请人做网站
  • 广东制冷设备网站建设费用小网站代码
  • 一个网站多个域名重定向怎么做工会网站建设策划书
  • 网页设计及网站建设在线作业为什么浙江建设厅网站
  • 贵阳网站建设q479185700惠从搜索引擎访问网站
  • 网站术语网站播放大视频如何做
  • 网站开发所需硬件北京市工程建设交易中心网站