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

商务网站建设作业在哪里可以兼职

商务网站建设作业,在哪里可以兼职,国外最开放的浏览器有什么优势,河北软文搜索引擎推广公司RT-Thread Studio学习#xff08;十三#xff09;DAC 一、简介二、新建RT-Thread项目并使用外部时钟三、启用DAC四、测试五、总结 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下使用DAC设备。硬件及开发环境如下#xff1a; OS WIN10STM32F40… RT-Thread Studio学习十三DAC 一、简介二、新建RT-Thread项目并使用外部时钟三、启用DAC四、测试五、总结 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下使用DAC设备。硬件及开发环境如下 OS WIN10STM32F407VET6STM32CubeMX v6.10.0STM32Cube MCU Package for STM32F4 Series v1.28.0RT-Thread Studio v2.2.7RT-Thread Source Code v5.0.2STM32F4 chip support packages v0.2.3 二、新建RT-Thread项目并使用外部时钟 打开RT-Thread Studio软件新建基于芯片的项目并使用外部时钟系统具体参见《RT-Thread Studio学习一使用外部时钟系统》。 三、启用DAC 打开DAC驱动框架 在RT-Thread Setting 中借助图形化配置工具打开软件DAC的驱动框架如下图所示 定义DAC相关的宏 在board.h文件末尾添加 /*-------------------------- DAC CONFIG BEGIN --------------------------*//** if you want to use dac you can use the following instructions.** STEP 1, open dac driver framework support in the RT-Thread Settings file** STEP 2, define macro related to the dac* such as #define BSP_USING_DAC1** STEP 3, copy your dac init function from stm32xxxx_hal_msp.c generated by stm32cubemx to the end of board.c file* such as void HAL_DAC_MspInit(DAC_HandleTypeDef* dacHandle)** STEP 4, modify your stm32xxxx_hal_config.h file to support dac peripherals. define macro related to the peripherals* such as #define HAL_DAC_MODULE_ENABLED**/#define BSP_USING_DAC1/*-------------------------- DAC CONFIG END --------------------------*/复制DAC初始化函数 双击RT-Thread Studio工程中的cubemx.ioc文件使能DAC1和DAC2具体如下图 从使能DAC后再重新生成STM32CubeMX代码将.\cubemx\Src\dac.c中的函数HAL_DAC_MspInit(DAC_HandleTypeDef* dacHandle)复制到board.c的末尾。 void HAL_DAC_MspInit(DAC_HandleTypeDef* dacHandle) {GPIO_InitTypeDef GPIO_InitStruct {0};if(dacHandle-InstanceDAC){/* USER CODE BEGIN DAC_MspInit 0 *//* USER CODE END DAC_MspInit 0 *//* DAC clock enable */__HAL_RCC_DAC_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/**DAC GPIO ConfigurationPA4 ------ DAC_OUT1PA5 ------ DAC_OUT2*/GPIO_InitStruct.Pin GPIO_PIN_4|GPIO_PIN_5;GPIO_InitStruct.Mode GPIO_MODE_ANALOG;GPIO_InitStruct.Pull GPIO_NOPULL;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);/* USER CODE BEGIN DAC_MspInit 1 *//* USER CODE END DAC_MspInit 1 */} }定义.\cubemx\Inc\stm32f4xx_hal_conf.h中的相关宏 #define HAL_DAC_MODULE_ENABLED四、测试 修改main.c的代码为 /** Copyright (c) 2006-2024, RT-Thread Development Team** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date Author Notes* 2024-01-15 RT-Thread first version*/#include rtthread.h #include stm32f4xx.h #include rtdevice.h#define DBG_TAG main #define DBG_LVL DBG_LOG #include rtdbg.h// PA4 ------ DAC_OUT1 // PA5 ------ DAC_OUT2 DAC_HandleTypeDef hdac;#define DAC_DEV_NAME dac1 /* DAC 设备名称 */ #define DAC_DEV_CHANNEL 1 /* DAC 通道 */ #define REFER_VOLTAGE 330 /* 参考电压 3.3V,数据精度乘以100保留2位小数*/ #define CONVERT_BITS (1 12) /* 转换位数为12位 */// 设置dac的使用命令 dac_set dac1 1 200 // 第一个参数为命令第二个参数为 dac 设备名称第 3 个参数为 dac 通道 // 第 4 个参数为 dac 输出数值 static int dac_set(int argc, char *argv[]) {if(argc!4){rt_kprintf(Usage: dac_set device name channel value\n);rt_kprintf(Example: dac_set dac1 1 1000\n);return RT_ERROR;}rt_dac_device_t dac_dev;rt_uint32_t value, vol, channel;rt_err_t ret RT_EOK;char dacdevname[RT_NAME_MAX];rt_strncpy(dacdevname, argv[1], RT_NAME_MAX);channel atoi(argv[2]); // DAC channelvalue atoi(argv[3]);/* 查找设备 */dac_dev (rt_dac_device_t)rt_device_find(dacdevname);if (dac_dev RT_NULL){rt_kprintf(dac sample run failed! cant find %s device!\n, dacdevname);return RT_ERROR;}/* 打开通道 */ret rt_dac_enable(dac_dev, channel);/* 设置输出值 */rt_dac_write(dac_dev, channel, value);rt_kprintf(the value is :%d \n, value);/* 转换为对应电压值 */vol value * REFER_VOLTAGE / CONVERT_BITS;rt_kprintf(the voltage is :%d.%02d \n, vol / 100, vol % 100);/* 延时查看效果关闭通道后无输出 */ // rt_thread_mdelay(500);/* 关闭通道 */ // ret rt_dac_disable(dac_dev, channel);return ret; }static int dac1_vol_sample() {rt_dac_device_t dac_dev;rt_uint32_t value, vol;rt_err_t ret RT_EOK;/* 查找设备 */dac_dev (rt_dac_device_t)rt_device_find(DAC_DEV_NAME);if (dac_dev RT_NULL){rt_kprintf(dac sample run failed! cant find %s device!\n, DAC_DEV_NAME);return RT_ERROR;}/* 打开通道 */ret rt_dac_enable(dac_dev, DAC_DEV_CHANNEL);/* 设置输出值 */value1000;rt_dac_write(dac_dev, DAC_DEV_CHANNEL, value);rt_kprintf(the value is :%d \n, value);/* 转换为对应电压值 */vol value * REFER_VOLTAGE / CONVERT_BITS;rt_kprintf(the voltage is :%d.%02d \n, vol / 100, vol % 100);/* 延时查看效果关闭通道后无输出 */// rt_thread_mdelay(500);/* 关闭通道 */// ret rt_dac_disable(dac_dev, DAC_DEV_CHANNEL);return ret; }int main(void) {int count 1;LOG_D(Hello RT-Thread! 2024.1.17);LOG_D(System CLock information);LOG_D(SYSCLK_Frequency %d, HAL_RCC_GetSysClockFreq());LOG_D(HCLK_Frequency %d, HAL_RCC_GetHCLKFreq());LOG_D(PCLK1_Frequency %d, HAL_RCC_GetPCLK1Freq());LOG_D(PCLK2_Frequency %d, HAL_RCC_GetPCLK2Freq());LOG_D(SysTick-LOAD %d, SysTick-LOAD);LOG_D(Current tick %d, rt_tick_get());dac1_vol_sample();while (count){LOG_D(Hello RT-Thread! %d, rt_tick_get());rt_thread_mdelay(60000);}return RT_EOK; }/* 导出到 msh 命令列表中 */ MSH_CMD_EXPORT(dac_set, set dac voltage. Useage: dac_set adc1 1 200); 运行结果如下 在PA4和PA5脚用万用表测得输出电压为0.8082V 五、总结 不需要在board.h中添加#define BSP_USING_DAC2宏定义因为dac1的通道2就是dac2。
http://www.pierceye.com/news/251590/

相关文章:

  • seo中文全称是什么360搜索怎么做网站自然优化
  • 青岛网站建设技术外包文本资料分享网站 建设
  • 做好网站建设工作wordpress转发微信缩略图
  • 马鞍山网站开发流程设计师免费资源导航
  • 成功的网站不仅仅是优化排视频网站建设应该注意什么
  • 如何制作网站和软件查询关键词密度网站的网址有哪些
  • 网站服务器查询平台贵阳网站改版
  • 怎样查看网站总浏览量寿县有做网站开发的吗
  • 东莞网站建设价格价格网建企业
  • 做播放器电影网站需要多少钱6网络工程师证
  • dw怎么做网站标题图标网站建设进度表 免费下载
  • 西安哪些做网站的公司好做电子商务网站的意义
  • 圣融网站建设包装设计网站是什么样子的
  • 网站建设的利润设计宝
  • 厦门网站制作案例dede做手机网站
  • 网站建设 环保 图片重庆信息网
  • 做网站的主流软件珠海网站建设珠海
  • 江门市网站建设 熊掌号wordpress分类不显示图片
  • 上海做网站技术有趣的网站小游戏
  • 网站建设需要哪些内容中国建设银行对公网站
  • 网站菜单实现原理全网营销外包
  • 江阴招聘网站建设学徒开源网站开发文档下载
  • 金融网站开发公司六安城市网新闻
  • 什邡网站建设公司linux怎么使用wordpress
  • 安阳网站建设公司网络推广的目标
  • 人像摄影网站有哪些贵阳网站制作企业
  • 山西山西省建设厅网站首页哪个网站做分享赚佣金
  • 曲靖网站制作一条龙赣州章贡区邮政编码是多少
  • 海南省网站设计公司网址百度小说风云榜排名
  • 刷网站关键词排名原理寮步建设网站