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

网站开发公司的销售方式百度指数入口

网站开发公司的销售方式,百度指数入口,西安抖音seo,主营网站开发MCU型号:STM32F103RET6 1.生成一个带串口输出的工程文件,新建RT-Thread项目工程文件。 2.查看电路图中的串口输出管脚,根据STMCubeMx软件可知此串口为USART1,选择芯片型号为STM32F103RET6,控制台串口选择UART1&#…

MCU型号:STM32F103RET6

1.生成一个带串口输出的工程文件,新建RT-Thread项目工程文件。
在这里插入图片描述
2.查看电路图中的串口输出管脚,根据STMCubeMx软件可知此串口为USART1,选择芯片型号为STM32F103RET6,控制台串口选择UART1,发送脚:PB6,接收脚:PB7
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.设置下载bin文件的下载地址为:0x08000000。
在这里插入图片描述
4.代码编译后下载到电路板,连上串口调试助手可看到调试信息。
在这里插入图片描述
5.打开RT-Thread Settings设置设备驱动中的USB,USB设置如图所示,设置完成之后,记得保存,否则设置无效。
在这里插入图片描述
在这里插入图片描述
6.查看原理图中的外部晶振大小,由图可知为8MHz。
在这里插入图片描述
7.打开CubeMx_Settings配置USB虚拟串口。
在这里插入图片描述
8.配置外部晶振,配置USB,重新配置外部时钟,配置完之后生成工程文件
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.删除usb_device.h,usbd_cdc_if.h,usbd_conf.h,usbd_desc.h文件,去掉main.c文件中的#include “usb_device.h”

在这里插入图片描述
在这里插入图片描述

10.在stm32f1xx_hal_conf.h打开宏定义HAL_UART_MODULE_ENABLED.
在这里插入图片描述
11.1.将usbd_conf.c文件中的void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)和HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)拷贝到stm32f1xx_hal_msp.c文件中。

void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
{if(pcdHandle->Instance==USB){/* USER CODE BEGIN USB_MspInit 0 *//* USER CODE END USB_MspInit 0 *//* Peripheral clock enable */__HAL_RCC_USB_CLK_ENABLE();/* Peripheral interrupt init */HAL_NVIC_SetPriority(USB_HP_CAN1_TX_IRQn, 5, 0);HAL_NVIC_EnableIRQ(USB_HP_CAN1_TX_IRQn);HAL_NVIC_SetPriority(USB_LP_CAN1_RX0_IRQn, 5, 0);HAL_NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn);/* USER CODE BEGIN USB_MspInit 1 *//* USER CODE END USB_MspInit 1 */}
}void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
{if(pcdHandle->Instance==USB){/* USER CODE BEGIN USB_MspDeInit 0 *//* USER CODE END USB_MspDeInit 0 *//* Peripheral clock disable */__HAL_RCC_USB_CLK_DISABLE();/* Peripheral interrupt Deinit*/HAL_NVIC_DisableIRQ(USB_HP_CAN1_TX_IRQn);HAL_NVIC_DisableIRQ(USB_LP_CAN1_RX0_IRQn);/* USER CODE BEGIN USB_MspDeInit 1 *//* USER CODE END USB_MspDeInit 1 */}
}

12.在board.h文件中开启BSP_USING_USBDEVICE,#define BSP_USING_USBDEVICE。
在这里插入图片描述
13.编译程序,烧录到电路板中,插上USB,在电脑中可显示端口号。
在这里插入图片描述
14.新建usbd_vcom.h和usbd_vcom.c文件,实现USB虚拟串口数据的发送和接收。
usbd_vcom.h
在这里插入图片描述

#ifndef __USBD_VCOM_H__
#define __USBD_VCOM_H__#include <rtthread.h>typedef struct
{
#define USBD_VCOM_THREAD_STACK_SIZE   1024
#define USBD_VCOM_THREAD_PRIO         15
#define USBD_VCOM_THREAD_TICK         10struct rt_semaphore sem_rx;rt_thread_t thread_rx;uint8_t is_running_rx;
}usbd_vcom_rtos_t;typedef struct
{rt_device_t dev;usbd_vcom_rtos_t rtos;
}usbd_vcom_t;extern usbd_vcom_t usbd_vcom;#define usbd_vcom_get_dev() usbd_vcom.devrt_err_t usbd_vcom_drive_init(void);
rt_err_t usbd_vcom_rx_call(rt_device_t dev, rt_size_t size);
rt_err_t usbd_vcom_init(void);
void usbd_vcom_thread_rx(void *para);
#endif

usbd_vcom.c文件

#include "usbd_vcom.h"usbd_vcom_t usbd_vcom;rt_err_t usbd_vcom_drive_init(void)
{rt_device_t *ps_dev=&usbd_vcom.dev;rt_err_t result = RT_EOK;*ps_dev = rt_device_find("vcom");if (!(*ps_dev)){return RT_ERROR;}result = rt_device_open(*ps_dev, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX);if (result != RT_EOK){return RT_ERROR;}rt_device_set_rx_indicate(*ps_dev, usbd_vcom_rx_call);return RT_EOK;
}rt_err_t usbd_vcom_rx_call(rt_device_t dev, rt_size_t size)
{usbd_vcom_rtos_t *ps_rtos=&usbd_vcom.rtos;if (0 == ps_rtos->is_running_rx){return RT_ERROR;}rt_sem_release(&ps_rtos->sem_rx);return RT_EOK;
}rt_err_t usbd_vcom_init(void)
{usbd_vcom_t *ps_handle=&usbd_vcom;usbd_vcom_rtos_t *ps_rtos=&ps_handle->rtos;rt_err_t result = RT_EOK;memset(ps_handle,0,sizeof(usbd_vcom_t));result = usbd_vcom_drive_init();if(result!=RT_EOK){return RT_ERROR;}result = rt_sem_init(&ps_rtos->sem_rx, "usbd_vcom_sem_rx", 0, RT_IPC_FLAG_FIFO);if(result!=RT_EOK){return RT_ERROR;}ps_rtos->thread_rx = rt_thread_create("usbd_vcom_thread_rx", usbd_vcom_thread_rx, ps_handle, USBD_VCOM_THREAD_STACK_SIZE, USBD_VCOM_THREAD_PRIO, USBD_VCOM_THREAD_TICK);if (ps_rtos->thread_rx == RT_NULL){return RT_ERROR;}rt_thread_startup(ps_rtos->thread_rx);
}void usbd_vcom_thread_rx(void *para)
{usbd_vcom_t *ps_handle=(usbd_vcom_t*)para;usbd_vcom_rtos_t *ps_rtos=&ps_handle->rtos;uint8_t b_data=0;ps_rtos->is_running_rx=1;while (ps_rtos->is_running_rx){while (rt_device_read(ps_handle->dev, -1, &b_data, 1) != 1){rt_sem_take(&ps_rtos->sem_rx, RT_WAITING_FOREVER);}rt_device_write(ps_handle->dev, 0, &b_data, 1);}
}

15.在main.c文件中增加usbd_vcom.h头文件以及添加usbd_vcom_init()的初始化代码。
在这里插入图片描述
16.编译程序,烧录到电路板中,利用串口调试助手连接上USB对应的的端口,发送数据会回显数据。


文章转载自:

http://x2bf9Nao.wjzzh.cn
http://vy2Bnz6l.wjzzh.cn
http://isPSynJz.wjzzh.cn
http://A6Z6H3z7.wjzzh.cn
http://y9MzmrkI.wjzzh.cn
http://Er6n9ubp.wjzzh.cn
http://1jMEOTYS.wjzzh.cn
http://RXryhb6D.wjzzh.cn
http://tG0vtdlu.wjzzh.cn
http://oXqBpfLZ.wjzzh.cn
http://i9V7R1Qy.wjzzh.cn
http://6Mq75rmN.wjzzh.cn
http://qgJdAncw.wjzzh.cn
http://jVvKXAy0.wjzzh.cn
http://jRMmFGKS.wjzzh.cn
http://KuAmJN0q.wjzzh.cn
http://BYIrGmSd.wjzzh.cn
http://3aq8qOrV.wjzzh.cn
http://0ZBCvhgh.wjzzh.cn
http://3n9K4Eux.wjzzh.cn
http://uTovuVrV.wjzzh.cn
http://983WRhNv.wjzzh.cn
http://Dh5drvLh.wjzzh.cn
http://OJktlGlN.wjzzh.cn
http://SjGPFFYO.wjzzh.cn
http://NqtIWGV6.wjzzh.cn
http://jTc8eukI.wjzzh.cn
http://pCST95lM.wjzzh.cn
http://xMD79Pjd.wjzzh.cn
http://vtImXONo.wjzzh.cn
http://www.dtcms.com/wzjs/680661.html

相关文章:

  • 如何建立国外网站如何做招聘网站分析
  • 免费域名做网站安装wordpress出现500
  • 网站各种按钮代码wordpress加首页
  • 外贸建站推广多少钱网站建设的工作流程
  • 西宁整站优化网站企业推广方案
  • 深圳营销网站建设怎样给网站换空间
  • 南宁网站建设方案详细方案网站开发专业有什么工作
  • 网站三个月没排名wordpress主题优化
  • 网站推广方案策划案例wordpress 3.9 wpmu
  • 推荐好的简历制作网站上海专门做网站的公司
  • dede网站地图模版店铺网络推广有哪些渠道
  • 网站中文名广州网页制作服务商
  • 中国建设学会查询网站电脑版和手机版网站怎么做
  • 网站建设丨找王科杰效果好时事新闻最新消息
  • 外贸网站建设与推广安卓app开发培训
  • 做网站的软件著作权本单位门户网站是什么意思
  • 网站建设_制作_设计学校网站建设配套制度
  • 天津市城市建设学校官方网站南昌seo外包公司
  • 深圳网站设计有限公司专业网页设计哪家好
  • 建站系统社区德阳装修公司
  • 平凉公司网站建设网络软文推广案例
  • 平顶山网站关键词优化哪个网站做h5好用
  • 手工艺品网站建设侧胡顺营销培训体系
  • 贵阳市建设厅官方网站天津网站优化方案
  • 台州市城乡建设局网站婚恋网站开发背景文献
  • 咖啡网站设计建设wordpress建设企业官网
  • 达内培训网站开发代做道路毕业设计网站
  • 福州专门做网站网红推广
  • flash网站模板下载图片展示网站模板
  • 数据网站建设哪家好企业建站程序哪个好