aardio软件开发上位机学习笔记2

新手交流admin 回复了问题 • 2 人关注 • 18 个回复 • 290 次浏览 • 10 小时前 • 来自相关话题

STM32F429怎么使用USB传输数据

问题困惑admin 回复了问题 • 2 人关注 • 3 个回复 • 23 次浏览 • 19 小时前 • 来自相关话题

STM32F042F6P6生成HID工程模拟USB鼠标.

其他分享井底添蛙 发表了文章 • 1 个评论 • 44 次浏览 • 2 天前 • 来自相关话题

就是这个板子,淘宝39买的直接上工程配置了。打开SWD调试,开引脚映射,打开USB(由于引脚占用,USB必须引脚映射后才能开启),设置好对应按键和LED的引脚输出输入模式:设置系统时钟,这里进去后自动设置:设置USB模式,进入GPIO配置:设置好按键和LED的输入输出模式,按键为上拉输入,当按键按下时检测为低:配置工程输出:设置工程名、工程路径、IDE:点击生成工程,等待一会:工程生成完后可直接打开,Keil对于STM32F0/L0系列的单片机是免费授权的,大家可以不用去下盗版破解,直接到官网下载最新的Keil就可以了,新的Keil编译似乎快了不少,详情:http://www2.keil.com/stmicroelectronics-stm32/mdk打开工程,编译,下载(我这里用的是ST-LINK下载),下载完成后,插上USB线到电脑上,会自动识别新设备,如下:可以改以下文件修改设备名称等:修改后编译、下载,电脑里检测的设备名称就已经变了:下面我们来修改main.c,添加按键检测和LED灯代码,当按下按键时,灯就会亮,松开后就灭,在while(1)下添加如下代码: if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 0)
 {
   HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
 }
 else
   HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);然后编译,下载,重新运行之后是不是当按下按键的时候LED就亮了呢?继续添加USB鼠标的代码,在main.c的程序头加入如下头文件:#include "usbd_hid.h"在main函数中定义一个4位数组,用来存放要发送到电脑的鼠标动作信息:  /*
 * buffer[0] - bit0: Left button 左键
 *             bit1: Right button 右键
 *             bit2: Middle button 中键
 * buffer[1] - Cursor movement X axis 水平移动
 * buffer[2] - Cursor movement Y axis 垂直移动
 * buffer[3] - Wheel vertical movement 滚轮转动
 */char buffer[4] = {0x00, 10, 10, 0};在按键检测的判断中添加一条发送语句:USBD_HID_SendReport(&hUsbDeviceFS, buffer, 4);再次编译下载并重新运行,USB插到电脑上后,按下按键,LED亮并且电脑上鼠标会向右下方移动。鼠标的其它参数输出请自行补充。 查看全部

就是这个板子,淘宝39买的

image.png

直接上工程配置了。

打开SWD调试,开引脚映射,打开USB(由于引脚占用,USB必须引脚映射后才能开启),设置好对应按键和LED的引脚输出输入模式:

设置系统时钟,这里进去后自动设置:

设置USB模式,进入GPIO配置:

设置好按键和LED的输入输出模式,按键为上拉输入,当按键按下时检测为低:

配置工程输出:设置工程名、工程路径、IDE:

点击生成工程,等待一会:

工程生成完后可直接打开,Keil对于STM32F0/L0系列的单片机是免费授权的,大家可以不用去下盗版破解,直接到官网下载最新的Keil就可以了,新的Keil编译似乎快了不少,详情:http://www2.keil.com/stmicroelectronics-stm32/mdk

打开工程,编译,下载(我这里用的是ST-LINK下载),下载完成后,插上USB线到电脑上,会自动识别新设备,如下:

可以改以下文件修改设备名称等:

修改后编译、下载,电脑里检测的设备名称就已经变了:

下面我们来修改main.c,添加按键检测和LED灯代码,当按下按键时,灯就会亮,松开后就灭,在while(1)下添加如下代码:

 if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 0)
 {
   HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
 }
 else
   HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);

然后编译,下载,重新运行之后是不是当按下按键的时候LED就亮了呢?

继续添加USB鼠标的代码,在main.c的程序头加入如下头文件:

#include "usbd_hid.h"

在main函数中定义一个4位数组,用来存放要发送到电脑的鼠标动作信息:

  /*
 * buffer[0] - bit0: Left button 左键
 *             bit1: Right button 右键
 *             bit2: Middle button 中键
 * buffer[1] - Cursor movement X axis 水平移动
 * buffer[2] - Cursor movement Y axis 垂直移动
 * buffer[3] - Wheel vertical movement 滚轮转动
 */char buffer[4] = {0x00, 10, 10, 0};

在按键检测的判断中添加一条发送语句:

USBD_HID_SendReport(&hUsbDeviceFS, buffer, 4);

再次编译下载并重新运行,USB插到电脑上后,按下按键,LED亮并且电脑上鼠标会向右下方移动。鼠标的其它参数输出请自行补充。


CubeMX+freertos+2个DS18B20测温

经验分享wide(BG7RGT) 发表了文章 • 2 个评论 • 60 次浏览 • 2 天前 • 来自相关话题

硬件: STM32F103开发板(MIN);独立两路 18B20软件:  CubeMX最新版本;MDK 最新版本,IAR 7.8关键: 单总线的时序要求比较严格,所以根据系统时钟计算好微秒函数, CubeMX带的 freeRTOS已经重新封装过,非常好用,所以任务都在 freeROTS.c中,自动生成的 main函数一点不用动,文档请看下面百度云链接,里面有keil与 IAR两个版本,包括CubeMX配置文件http://pan.baidu.com/s/1nv2X3dv  密码:q81t 查看全部

硬件: STM32F103开发板(MIN);独立两路 18B20

软件:  CubeMX最新版本;MDK 最新版本,IAR 7.8

关键: 单总线的时序要求比较严格,所以根据系统时钟计算好微秒函数, CubeMX带的 freeRTOS已经重新封装过,非常好用,所以任务都在 freeROTS.c中,自动生成的 main函数一点不用动,文档请看下面百度云链接,里面有keil与 IAR两个版本,包括CubeMX配置文件

http://pan.baidu.com/s/1nv2X3dv  密码:q81t

(实验记录)关于stm32cube对SRAM的操作和设置

软件教程默以太 回复了问题 • 5 人关注 • 6 个回复 • 2919 次浏览 • 3 天前 • 来自相关话题

407 + freeRTOS + Lwip + DP83848无法ping通, 找不到板子MAC地址

回复

问题困惑mephisto 回复了问题 • 1 人关注 • 2 个回复 • 73 次浏览 • 4 天前 • 来自相关话题

在STM32F756IG平台上,无法实现使用TIM2触发ADC采样

回复

问题困惑匿名用户 发起了问题 • 1 人关注 • 0 个回复 • 55 次浏览 • 5 天前 • 来自相关话题

STM32CubeMX生成STM32f030RC的串口1的中断接收程序

问题困惑feiante 回复了问题 • 3 人关注 • 2 个回复 • 118 次浏览 • 6 天前 • 来自相关话题

can中断接收,同时定时器中断发送问题求教

新手交流Nguhyw 回复了问题 • 4 人关注 • 3 个回复 • 744 次浏览 • 2017-05-19 17:24 • 来自相关话题

STM32F7 spi从机数据错位

问题困惑any012 回复了问题 • 2 人关注 • 1 个回复 • 486 次浏览 • 2017-05-18 17:39 • 来自相关话题