stmcdc.inf文件(虚拟串口驱动文件)

回复

admin 回复了问题 • 3 人关注 • 1 个回复 • 8654 次浏览 • 2016-09-27 20:42 • 来自相关话题

(转)运放电路PCB设计中的十个小技巧

回复

admin 回复了问题 • 3 人关注 • 1 个回复 • 2391 次浏览 • 2016-09-19 21:04 • 来自相关话题

keil中一个工程建立两个项目的方法(一个工程两种编译模式)

回复

admin 发起了问题 • 1 人关注 • 0 个回复 • 5083 次浏览 • 2016-08-07 11:18 • 来自相关话题

(转)FATFS 初学之 f_gets/ f_putc/ f_puts/ f_printf详细描述

回复

admin 发起了问题 • 2 人关注 • 0 个回复 • 4150 次浏览 • 2016-08-04 15:07 • 来自相关话题

(转)keil生成的Hex和Bin的区别及hex转bin的源码

回复

admin 回复了问题 • 4 人关注 • 2 个回复 • 5257 次浏览 • 2016-07-28 20:56 • 来自相关话题

(看到好文章就想转系列)浅谈stm32的fsmc功能与lcd的对接

回复

admin 发起了问题 • 4 人关注 • 0 个回复 • 2637 次浏览 • 2016-07-28 16:33 • 来自相关话题

自定义keil中快捷键,加快程序编写进度

admin 发表了文章 • 0 个评论 • 3464 次浏览 • 2016-07-22 10:37 • 来自相关话题

用过了其他编辑器之后,发现写代码和调试的时候如虎添翼啊
可惜keil中没有这些个快捷键,
这就需要自己定义了下面是自定义快捷键的方法:

1. 查找自己想要定义的功能的位置,比如我想要定义“Comment Selection”注释选中目标功能,找到它的位置为:Edit:Advanced:Comment Selection;

2. 选择Edit:Configuration,配置选项;

3. 选择Shortcut Keys标签,定义快捷键;

4. 在Select a Command里选择自己的功能操作“Edit:Advanced:Comment Selection”,然后点击Create Shortcut按钮;

5. 在对话框里键入自己想要使用的快捷键,然后点OK按钮,最后在configuration里点OK就可以了。比如,我想把选中的行注释掉,那么我定义了Ctrl+/ ,反向消除注释用Ctrl+\
一般我们需要查看函数的定义,我就定义为Ctrl+`为了查看完注释立马回到查看前的位置,那么我定义返回为Ctrl+1前进为Ctrl+2上面这些操作定义,我是基于左手的,这样我只需要鼠标指定位置,其他的工作都是左手完成
 
我所用的快捷键设置:

Ctrl + Q 注释选中行
Ctrl + W 取消选中行注释

Ctrl + ~ 查看鼠标所在函数的定义 GO to define
Ctrl + 1 后退一步
Ctrl + 2 前进一步 查看全部
用过了其他编辑器之后,发现写代码和调试的时候如虎添翼啊
可惜keil中没有这些个快捷键,
这就需要自己定义了
下面是自定义快捷键的方法:

1. 查找自己想要定义的功能的位置,比如我想要定义“Comment Selection”注释选中目标功能,找到它的位置为:Edit:Advanced:Comment Selection;

2. 选择Edit:Configuration,配置选项;

3. 选择Shortcut Keys标签,定义快捷键;

4. 在Select a Command里选择自己的功能操作“Edit:Advanced:Comment Selection”,然后点击Create Shortcut按钮;

5. 在对话框里键入自己想要使用的快捷键,然后点OK按钮,最后在configuration里点OK就可以了。
比如,我想把选中的行注释掉,那么我定义了
Ctrl+/
,反向消除注释用
Ctrl+\

一般我们需要查看函数的定义,我就定义为
Ctrl+`
为了查看完注释立马回到查看前的位置,那么我定义返回为
Ctrl+1
前进为
Ctrl+2
上面这些操作定义,我是基于左手的,这样我只需要鼠标指定位置,其他的工作都是左手完成
 
我所用的快捷键设置:

Ctrl + Q 注释选中行
Ctrl + W 取消选中行注释

Ctrl + ~ 查看鼠标所在函数的定义 GO to define
Ctrl + 1 后退一步
Ctrl + 2 前进一步

转载一个工具:免驱动的DFU工具HidDfu目前支持STM32F10x,(经过测试确实可用)

回复

admin 发起了问题 • 1 人关注 • 0 个回复 • 5809 次浏览 • 2016-07-19 13:37 • 来自相关话题

(转)教你如何把ST-link刷成J-link

admin 发表了文章 • 0 个评论 • 7969 次浏览 • 2016-07-11 14:14 • 来自相关话题

ST-link多为意法官方的开发板标配调试器,
几乎在所有的ST官方开发板上都带着了,
比如大家最熟悉的NUCLEO,
今天就教大家怎么把板载的ST-link刷成J-link,
这是官方的教程链接:可以参考。
https://www.segger.com/jlink-st-link.html





注意:
1、必须是ST官方开发板自带的ST-link,
X宝买的那种U盘样式的不支持。
2、刷完之后到ST-link是OB模式的,
所以厚些功能依然不支持。
3、刷成J-link的设备依然可以刷会ST-link。

更改后的功能:
1、能够支持J-Link的高速下载和调试
2、支持SEGGER的GDB Server
3、功能完全兼容官方J-Link OB
4、能够支持更多的集成开发环境
5、支持虚拟串口功能(貌似ST-link也支持)
首先附上我们的作案工具,解压后可以直接使用
http://pan.baidu.com/s/1jIdeeKQ
 
打开后的界面是这样的,询问是否接收条款,
我们选择A,然后回车。





接下来是这样的,还是协议,我们继续Accept。





接着便来到烧写界面了,
如果你是想把ST-link刷成J-link就选“1”,然后回车。
如果是想将设备刷会J-link,就选择“2”,然后回车。







总之一句话,我们纯属就是在“瞎折腾”
刷坏了,别找我
刷坏了还有个[3]选项不是?路走错了还可以回头。
和V8区别是:只支持6个断点





 
>>本文引用自:http://bbs.eeworld.com.cn/thread-491997-1-4.html
  查看全部
ST-link多为意法官方的开发板标配调试器,
几乎在所有的ST官方开发板上都带着了,
比如大家最熟悉的NUCLEO,
今天就教大家怎么把板载的ST-link刷成J-link,
这是官方的教程链接:可以参考。
https://www.segger.com/jlink-st-link.html

1.jpg

注意:
1、必须是ST官方开发板自带的ST-link,
X宝买的那种U盘样式的不支持。
2、刷完之后到ST-link是OB模式的,
所以厚些功能依然不支持。
3、刷成J-link的设备依然可以刷会ST-link。

更改后的功能:
1、能够支持J-Link的高速下载和调试
2、支持SEGGER的GDB Server
3、功能完全兼容官方J-Link OB
4、能够支持更多的集成开发环境
5、支持虚拟串口功能(貌似ST-link也支持)
首先附上我们的作案工具,解压后可以直接使用
http://pan.baidu.com/s/1jIdeeKQ
 
打开后的界面是这样的,询问是否接收条款,
我们选择A,然后回车。

2.jpg

接下来是这样的,还是协议,我们继续Accept。

3.jpg

接着便来到烧写界面了,
如果你是想把ST-link刷成J-link就选“1”,然后回车。
如果是想将设备刷会J-link,就选择“2”,然后回车。
4.jpg




总之一句话,我们纯属就是在“瞎折腾”
刷坏了,别找我
刷坏了还有个[3]选项不是?路走错了还可以回头。
和V8区别是:只支持6个断点

5.jpg

 
>>本文引用自:http://bbs.eeworld.com.cn/thread-491997-1-4.html
 

(转)Using the TLC5940 with an STM32

回复

admin 发起了问题 • 1 人关注 • 0 个回复 • 2812 次浏览 • 2016-07-04 13:23 • 来自相关话题

如何选择适合自己的adc

回复

admin 发起了问题 • 1 人关注 • 0 个回复 • 2370 次浏览 • 2016-06-27 10:00 • 来自相关话题

(转)来自歪果仁的基于stm32f070F6PX利用cubemx实现USB转RS485实现原理图/程序/PCB

admin 发表了文章 • 0 个评论 • 4868 次浏览 • 2016-06-12 23:08 • 来自相关话题

Testing of sensors with RS485 using PC without proper interface is not possible. Since RS232 interfaces are very rare, the interface should be hooked to USB. The interface between USB and RS485 can be soldered with one of the many FTDI interfaces with added RS485 driver, or bought as assembled module. There is always the third option. I made it from scratch.

I took smallest STM32F0 with USB and UART interface. The best thing with UART in the STM32F0 is that signal for driver enable is provided within hardware. The complete pinout of the microcontroller is:










The hardware part is easy. The complete PCB is one-sided. I kept it as minimalistic as possible. There are three active components: voltage regulator, microcontroller and RS485 transceiver. The complete schematic:




The PCB is single sided:




The project, generated from the MX cube is almost all we need. There are few things to add:

retransmit bytes received from USB to UART
forward bytes received via UART to USB
add serial line coding interpretation and reflect it in the hardware UART
 
The code for sending bytes from UART to USB is within main endless loop:
if (HAL_UART_Receive_IT(&huart2, &aRxBuffer, 1) == HAL_OK)
CDC_Transmit_FS(&aRxBuffer,1)Code to send data from USB to UART is within CDC_Receive_FS() function:
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
{
/* USER CODE BEGIN 6 */
USBD_CDC_SetRxBuffer(hUsbDevice_0, &Buf[0]);
USBD_CDC_ReceivePacket(hUsbDevice_0);
HAL_UART_Transmit(&huart2, Buf, *Len, 100);
return (USBD_OK);
/* USER CODE END 6 */
}And finally, the code to set the UART line parameters are within USB CDC_Control_FS() function:
/*******************************************************************************/
/* Line Coding Structure */
/*-----------------------------------------------------------------------------*/
/* Offset | Field | Size | Value | Description */
/* 0 | dwDTERate | 4 | Number |Data terminal rate, in bits per second*/
/* 4 | bCharFormat | 1 | Number | Stop bits */
/* 0 - 1 Stop bit */
/* 1 - 1.5 Stop bits */
/* 2 - 2 Stop bits */
/* 5 | bParityType | 1 | Number | Parity */
/* 0 - None */
/* 1 - Odd */
/* 2 - Even */
/* 3 - Mark */
/* 4 - Space */
/* 6 | bDataBits | 1 | Number Data bits (5, 6, 7, 8 or 16). */
/*******************************************************************************/
case CDC_SET_LINE_CODING:
linecoding.bitrate = (uint32_t)(pbuf[0] | (pbuf[1] << 8) | (pbuf[2] << 16) | (pbuf[3] << 24));
linecoding.format = pbuf[4];
linecoding.paritytype = pbuf[5];
linecoding.datatype = pbuf[6];
huart2.Init.BaudRate = linecoding.bitrate;
switch (linecoding.format)
{
case 0 : huart2.Init.StopBits = UART_STOPBITS_1; break;
case 1 : huart2.Init.StopBits = UART_STOPBITS_1_5; break;
case 2 : huart2.Init.StopBits = UART_STOPBITS_2; break;
}
switch (linecoding.paritytype)
{
case 0 : huart2.Init.Parity = UART_PARITY_NONE; break;
case 1 : huart2.Init.Parity = UART_PARITY_ODD; break;
case 2 : huart2.Init.Parity = UART_PARITY_EVEN; break;
}
//UART_WORDLENGTH_7B
switch (linecoding.datatype)
{
case 7 : huart2.Init.WordLength = UART_WORDLENGTH_7B; break;
case 8 : huart2.Init.WordLength = UART_WORDLENGTH_8B; break;
}
HAL_RS485Ex_Init(&huart2, UART_DE_POLARITY_HIGH, 0, 0);

break;The complete project is hosted on GitHub>>> https://github.com/s54mtb/USB2RS485

The driver for the USB/CDC device class can be downloaded from: http://www.st.com/content/st_c ... .html  or local copy: VCP_V1.4.0_Setup

I will use this small module for testing sensors, which I have under development for my vineyard weather station: humidity, air pressure, temperature, wind, illumination, soil parameters, etc…
 
>>本文转自:http://e.pavlin.si/2016/05/29/usb-to-rs485/
相关程序在本站网盘里找到名字:usb_to_RS485.zip 查看全部
Testing of sensors with RS485 using PC without proper interface is not possible. Since RS232 interfaces are very rare, the interface should be hooked to USB. The interface between USB and RS485 can be soldered with one of the many FTDI interfaces with added RS485 driver, or bought as assembled module. There is always the third option. I made it from scratch.

I took smallest STM32F0 with USB and UART interface. The best thing with UART in the STM32F0 is that signal for driver enable is provided within hardware. The complete pinout of the microcontroller is:

pinout-1.jpg


QQ图片20160612230412.png

The hardware part is easy. The complete PCB is one-sided. I kept it as minimalistic as possible. There are three active components: voltage regulator, microcontroller and RS485 transceiver. The complete schematic:
sch-1.jpg

The PCB is single sided:
QQ图片20160612230354.png

The project, generated from the MX cube is almost all we need. There are few things to add:

retransmit bytes received from USB to UART
forward bytes received via UART to USB
add serial line coding interpretation and reflect it in the hardware UART
 
The code for sending bytes from UART to USB is within main endless loop:
if (HAL_UART_Receive_IT(&huart2, &aRxBuffer, 1) == HAL_OK) 
CDC_Transmit_FS(&aRxBuffer,1)
Code to send data from USB to UART is within CDC_Receive_FS() function:
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
{
/* USER CODE BEGIN 6 */
USBD_CDC_SetRxBuffer(hUsbDevice_0, &Buf[0]);
USBD_CDC_ReceivePacket(hUsbDevice_0);
HAL_UART_Transmit(&huart2, Buf, *Len, 100);
return (USBD_OK);
/* USER CODE END 6 */
}
And finally, the code to set the UART line parameters are within USB CDC_Control_FS() function:
 /*******************************************************************************/
/* Line Coding Structure */
/*-----------------------------------------------------------------------------*/
/* Offset | Field | Size | Value | Description */
/* 0 | dwDTERate | 4 | Number |Data terminal rate, in bits per second*/
/* 4 | bCharFormat | 1 | Number | Stop bits */
/* 0 - 1 Stop bit */
/* 1 - 1.5 Stop bits */
/* 2 - 2 Stop bits */
/* 5 | bParityType | 1 | Number | Parity */
/* 0 - None */
/* 1 - Odd */
/* 2 - Even */
/* 3 - Mark */
/* 4 - Space */
/* 6 | bDataBits | 1 | Number Data bits (5, 6, 7, 8 or 16). */
/*******************************************************************************/
case CDC_SET_LINE_CODING:
linecoding.bitrate = (uint32_t)(pbuf[0] | (pbuf[1] << 8) | (pbuf[2] << 16) | (pbuf[3] << 24));
linecoding.format = pbuf[4];
linecoding.paritytype = pbuf[5];
linecoding.datatype = pbuf[6];
huart2.Init.BaudRate = linecoding.bitrate;
switch (linecoding.format)
{
case 0 : huart2.Init.StopBits = UART_STOPBITS_1; break;
case 1 : huart2.Init.StopBits = UART_STOPBITS_1_5; break;
case 2 : huart2.Init.StopBits = UART_STOPBITS_2; break;
}
switch (linecoding.paritytype)
{
case 0 : huart2.Init.Parity = UART_PARITY_NONE; break;
case 1 : huart2.Init.Parity = UART_PARITY_ODD; break;
case 2 : huart2.Init.Parity = UART_PARITY_EVEN; break;
}
//UART_WORDLENGTH_7B
switch (linecoding.datatype)
{
case 7 : huart2.Init.WordLength = UART_WORDLENGTH_7B; break;
case 8 : huart2.Init.WordLength = UART_WORDLENGTH_8B; break;
}
HAL_RS485Ex_Init(&huart2, UART_DE_POLARITY_HIGH, 0, 0);

break;
The complete project is hosted on GitHub>>> https://github.com/s54mtb/USB2RS485

The driver for the USB/CDC device class can be downloaded from: http://www.st.com/content/st_c ... .html  or local copy: VCP_V1.4.0_Setup

I will use this small module for testing sensors, which I have under development for my vineyard weather station: humidity, air pressure, temperature, wind, illumination, soil parameters, etc…
 
>>本文转自:http://e.pavlin.si/2016/05/29/usb-to-rs485/
相关程序在本站网盘里找到名字:usb_to_RS485.zip

看cubemx的模板ttl文件了解很多程序员不知道的#和##

admin 回复了问题 • 2 人关注 • 3 个回复 • 4057 次浏览 • 2016-06-02 15:31 • 来自相关话题

【HAL库每天一例】第003例:GPIO-蜂鸣器

yingshi 发表了文章 • 2 个评论 • 2991 次浏览 • 2016-05-27 09:14 • 来自相关话题

【HAL库每天一例】系列例程从今天开始持续更新。。。。。
我们将坚持每天至少发布一个基于YS-F1Pro开发板的HAL库例程,
该系列例程将带领大家从零开始使用HAL库,后面会持续添加模块应用例程。
同样的,我们还程序发布基于HAL库的指导文档和视频教程,欢迎持续关注,并提出改进意见。
例程下载:
资料包括程序、相关说明资料以及软件使用截图
链接:http://pan.baidu.com/s/1i574oPv
密码:r3s3
(硬石YS-F1Pro开发板HAL库例程持续更新\1. 软件设计之基本裸机例程(HAL库版本)\YSF1_HAL-003. GPIO-蜂鸣器)

/**
  ******************************************************************************
  *                           硬石YS-F1Pro开发板例程功能说明
  *
  *  例程名称: YSF1_HAL-003. GPIO-蜂鸣器
  *   
  ******************************************************************************
  * 说明:
  * 本例程配套硬石stm32开发板YS-F1Pro使用。
  *
  * 淘宝:
  * 论坛:ing10bbs.com
  * 版权归硬石嵌入式开发团队所有,请勿商用。
  ******************************************************************************
  */

【1】例程简介
  使用stm32控制蜂鸣器,实现蜂鸣器响或不响效果。
  
【2】跳线帽情况
******* 为保证例程正常运行,必须插入以下跳线帽 **********
丝印编号     IO端口      目标功能引脚        出厂默认设置
  JP3        PB0           LED1               已接入
  JP4        PG6           LED2               已接入
  JP5        PG7           LED3               已接入
  
【3】操作及现象
  使用开发板配套的MINI USB线连接到开发板标示“调试串口”字样的MIMI USB接口为开发板供电。
下载完程序之后,翻转蜂鸣器和LED1灯输出,使得蜂鸣器时响时不响。

/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/











bsp_beep.h文件内容:#ifndef __BSP_BEEP_H__
#define __BSP_BEEP_H__

/* 包含头文件 ----------------------------------------------------------------*/
#include "stm32f1xx_hal.h"

/* 类型定义 ------------------------------------------------------------------*/
typedef enum
{
BEEPState_OFF = 0,
BEEPState_ON,
}BEEPState_TypeDef;
#define IS_BEEP_STATE(STATE) (((STATE) == BEEPState_OFF) || ((STATE) == BEEPState_ON))

/* 宏定义 --------------------------------------------------------------------*/
#define BEEP_RCC_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
#define BEEP_GPIO_PIN GPIO_PIN_7
#define BEEP_GPIO GPIOD

#define BEEP_ON HAL_GPIO_WritePin(BEEP_GPIO,BEEP_GPIO_PIN,GPIO_PIN_SET) // 输出高电平
#define BEEP_OFF HAL_GPIO_WritePin(BEEP_GPIO,BEEP_GPIO_PIN,GPIO_PIN_RESET) // 输出低电平
#define BEEP_TOGGLE HAL_GPIO_TogglePin(BEEP_GPIO,BEEP_GPIO_PIN) // 输出反转


/* 扩展变量 ------------------------------------------------------------------*/
/* 函数声明 ------------------------------------------------------------------*/
void BEEP_GPIO_Init(void);
void BEEP_StateSet(BEEPState_TypeDef state);

#endif // __BSP_BEEP_H__

/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/
bsp_beep.c文件内容:/**
******************************************************************************
* 文件名程: bsp_beep.c
* 作 者: 硬石嵌入式开发团队
* 版 本: V1.0
* 编写日期: 2015-10-04
* 功 能: 板载有源蜂鸣器底层驱动程序
******************************************************************************
* 说明:
* 本例程配套硬石stm32开发板YS-F1Pro使用。
*
* 淘宝:
* 论坛:
ing10bbs.com
* 版权归硬石嵌入式开发团队所有,请勿商用。
******************************************************************************
*/
/* 包含头文件 ----------------------------------------------------------------*/
#include "bsp/beep/bsp_beep.h"

/* 私有类型定义 --------------------------------------------------------------*/
/* 私有宏定义 ----------------------------------------------------------------*/
/* 私有变量 ------------------------------------------------------------------*/
/* 扩展变量 ------------------------------------------------------------------*/
/* 私有函数原形 --------------------------------------------------------------*/
/* 函数体 --------------------------------------------------------------------*/

/**
* 函数功能: 板载蜂鸣器IO引脚初始化.
* 输入参数: 无
* 返 回 值: 无
* 说 明:使用宏定义方法代替具体引脚号,方便程序移植,只要简单修改bsp_beep.h
* 文件相关宏定义就可以方便修改引脚。
*/
void BEEP_GPIO_Init(void)
{
/* 定义IO硬件初始化结构体变量 */
GPIO_InitTypeDef GPIO_InitStruct;

/* 使能(开启)蜂鸣器引脚对应IO端口时钟 */
BEEP_RCC_CLK_ENABLE();

/* 设置引脚输出为低电平,此时蜂鸣器不响 */
HAL_GPIO_WritePin(BEEP_GPIO, BEEP_GPIO_PIN, GPIO_PIN_RESET);

/* 设定蜂鸣器对应引脚IO编号 */
GPIO_InitStruct.Pin = BEEP_GPIO_PIN;
/* 设定蜂鸣器对应引脚IO为输出模式 */
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
/* 设定蜂鸣器对应引脚IO操作速度 */
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
/* 初始化蜂鸣器对应引脚IO */
HAL_GPIO_Init(BEEP_GPIO, &GPIO_InitStruct);
}

/**
* 函数功能: 设置板载蜂鸣器的状态
* 输入参数:state:设置蜂鸣器的状态。
* 可选值:BEEPState_OFF:蜂鸣器不响;
* 可选值:BEEPState_ON: 蜂鸣器响。
* 返 回 值: 无
* 说 明:该函数使用类似HALA库函数的编程方法,方便理解HAL库函数编程思想。
*/
void BEEP_StateSet(BEEPState_TypeDef state)
{
/* 检查输入参数是否合法 */
assert_param(BEEPState_TypeDef(state));

/* 判断设置的蜂鸣器状态,如果设置为蜂鸣器响 */
if(state==BEEPState_ON)
{
BEEP_ON;/* 蜂鸣器响 */
}
else /* state=BEEPState_OFF:设置蜂鸣器不响 */
{
BEEP_OFF;/* 蜂鸣器不响 */
}
}

/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/ 查看全部
【HAL库每天一例】系列例程从今天开始持续更新。。。。。
我们将坚持每天至少发布一个基于YS-F1Pro开发板的HAL库例程,
该系列例程将带领大家从零开始使用HAL库,后面会持续添加模块应用例程。
同样的,我们还程序发布基于HAL库的指导文档和视频教程,欢迎持续关注,并提出改进意见。
例程下载:
资料包括程序、相关说明资料以及软件使用截图
链接:http://pan.baidu.com/s/1i574oPv
密码:r3s3
(硬石YS-F1Pro开发板HAL库例程持续更新\1. 软件设计之基本裸机例程(HAL库版本)\YSF1_HAL-003. GPIO-蜂鸣器)

/**
  ******************************************************************************
  *                           硬石YS-F1Pro开发板例程功能说明
  *
  *  例程名称: YSF1_HAL-003. GPIO-蜂鸣器
  *   
  ******************************************************************************
  * 说明:
  * 本例程配套硬石stm32开发板YS-F1Pro使用。
  *
  * 淘宝:
  * 论坛:ing10bbs.com
  * 版权归硬石嵌入式开发团队所有,请勿商用。
  ******************************************************************************
  */

【1】例程简介
  使用stm32控制蜂鸣器,实现蜂鸣器响或不响效果。
  
【2】跳线帽情况
******* 为保证例程正常运行,必须插入以下跳线帽 **********
丝印编号     IO端口      目标功能引脚        出厂默认设置
  JP3        PB0           LED1               已接入
  JP4        PG6           LED2               已接入
  JP5        PG7           LED3               已接入
  
【3】操作及现象
  使用开发板配套的MINI USB线连接到开发板标示“调试串口”字样的MIMI USB接口为开发板供电。
下载完程序之后,翻转蜂鸣器和LED1灯输出,使得蜂鸣器时响时不响。

/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/

CubeMX_1.jpg


CubeMX_2.jpg


bsp_beep.h文件内容:
#ifndef __BSP_BEEP_H__
#define __BSP_BEEP_H__

/* 包含头文件 ----------------------------------------------------------------*/
#include "stm32f1xx_hal.h"

/* 类型定义 ------------------------------------------------------------------*/
typedef enum
{
BEEPState_OFF = 0,
BEEPState_ON,
}BEEPState_TypeDef;
#define IS_BEEP_STATE(STATE) (((STATE) == BEEPState_OFF) || ((STATE) == BEEPState_ON))

/* 宏定义 --------------------------------------------------------------------*/
#define BEEP_RCC_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
#define BEEP_GPIO_PIN GPIO_PIN_7
#define BEEP_GPIO GPIOD

#define BEEP_ON HAL_GPIO_WritePin(BEEP_GPIO,BEEP_GPIO_PIN,GPIO_PIN_SET) // 输出高电平
#define BEEP_OFF HAL_GPIO_WritePin(BEEP_GPIO,BEEP_GPIO_PIN,GPIO_PIN_RESET) // 输出低电平
#define BEEP_TOGGLE HAL_GPIO_TogglePin(BEEP_GPIO,BEEP_GPIO_PIN) // 输出反转


/* 扩展变量 ------------------------------------------------------------------*/
/* 函数声明 ------------------------------------------------------------------*/
void BEEP_GPIO_Init(void);
void BEEP_StateSet(BEEPState_TypeDef state);

#endif // __BSP_BEEP_H__

/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/

bsp_beep.c文件内容:
/**
******************************************************************************
* 文件名程: bsp_beep.c
* 作 者: 硬石嵌入式开发团队
* 版 本: V1.0
* 编写日期: 2015-10-04
* 功 能: 板载有源蜂鸣器底层驱动程序
******************************************************************************
* 说明:
* 本例程配套硬石stm32开发板YS-F1Pro使用。
*
* 淘宝:
* 论坛:
ing10bbs.com
* 版权归硬石嵌入式开发团队所有,请勿商用。
******************************************************************************
*/
/* 包含头文件 ----------------------------------------------------------------*/
#include "bsp/beep/bsp_beep.h"

/* 私有类型定义 --------------------------------------------------------------*/
/* 私有宏定义 ----------------------------------------------------------------*/
/* 私有变量 ------------------------------------------------------------------*/
/* 扩展变量 ------------------------------------------------------------------*/
/* 私有函数原形 --------------------------------------------------------------*/
/* 函数体 --------------------------------------------------------------------*/

/**
* 函数功能: 板载蜂鸣器IO引脚初始化.
* 输入参数: 无
* 返 回 值: 无
* 说 明:使用宏定义方法代替具体引脚号,方便程序移植,只要简单修改bsp_beep.h
* 文件相关宏定义就可以方便修改引脚。
*/
void BEEP_GPIO_Init(void)
{
/* 定义IO硬件初始化结构体变量 */
GPIO_InitTypeDef GPIO_InitStruct;

/* 使能(开启)蜂鸣器引脚对应IO端口时钟 */
BEEP_RCC_CLK_ENABLE();

/* 设置引脚输出为低电平,此时蜂鸣器不响 */
HAL_GPIO_WritePin(BEEP_GPIO, BEEP_GPIO_PIN, GPIO_PIN_RESET);

/* 设定蜂鸣器对应引脚IO编号 */
GPIO_InitStruct.Pin = BEEP_GPIO_PIN;
/* 设定蜂鸣器对应引脚IO为输出模式 */
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
/* 设定蜂鸣器对应引脚IO操作速度 */
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
/* 初始化蜂鸣器对应引脚IO */
HAL_GPIO_Init(BEEP_GPIO, &GPIO_InitStruct);
}

/**
* 函数功能: 设置板载蜂鸣器的状态
* 输入参数:state:设置蜂鸣器的状态。
* 可选值:BEEPState_OFF:蜂鸣器不响;
* 可选值:BEEPState_ON: 蜂鸣器响。
* 返 回 值: 无
* 说 明:该函数使用类似HALA库函数的编程方法,方便理解HAL库函数编程思想。
*/
void BEEP_StateSet(BEEPState_TypeDef state)
{
/* 检查输入参数是否合法 */
assert_param(BEEPState_TypeDef(state));

/* 判断设置的蜂鸣器状态,如果设置为蜂鸣器响 */
if(state==BEEPState_ON)
{
BEEP_ON;/* 蜂鸣器响 */
}
else /* state=BEEPState_OFF:设置蜂鸣器不响 */
{
BEEP_OFF;/* 蜂鸣器不响 */
}
}

/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/

【HAL库每天一例】第001例:工程模板(HAL库移植)

yingshi 发表了文章 • 3 个评论 • 8939 次浏览 • 2016-05-25 08:57 • 来自相关话题

【HAL库每天一例】系列例程从今天开始持续更新。。。。。
我们将坚持每天至少发布一个基于YS-F1Pro开发板的HAL库例程,
该系列例程将带领大家从零开始使用HAL库,后面会持续添加模块应用例程。
同样的,我们还程序发布基于HAL库的指导文档和视频教程,欢迎持续关注,并提出改进意见。

例程下载:
资料包括程序、相关说明资料以及软件使用截图
链接:http://pan.baidu.com/s/1i574oPv
密码:r3s3
(硬石YS-F1Pro开发板HAL库例程持续更新\1. 软件设计之基本裸机例程(HAL库版本)\YSF1_HAL-001. 工程模板(HAL库移植))























































































还有IAR具体设置的截图,太多了就不上传了,具体见百度云资料
  查看全部
【HAL库每天一例】系列例程从今天开始持续更新。。。。。
我们将坚持每天至少发布一个基于YS-F1Pro开发板的HAL库例程,
该系列例程将带领大家从零开始使用HAL库,后面会持续添加模块应用例程。
同样的,我们还程序发布基于HAL库的指导文档和视频教程,欢迎持续关注,并提出改进意见。

例程下载:
资料包括程序、相关说明资料以及软件使用截图
链接:http://pan.baidu.com/s/1i574oPv
密码:r3s3
(硬石YS-F1Pro开发板HAL库例程持续更新\1. 软件设计之基本裸机例程(HAL库版本)\YSF1_HAL-001. 工程模板(HAL库移植))

KEIL_1.jpg


KEIL_2.jpg


KEIL_3.jpg


KEIL_4.jpg


KEIL_5.jpg


KEIL_6.jpg


KEIL_7.jpg


KEIL_8.jpg


KEIL_9.jpg


KEIL_10.jpg


KEIL_11.jpg


KEIL_12.jpg


KEIL_13.jpg


KEIL_14.jpg


KEIL_15.jpg


KEIL_16.jpg


KEIL_17.jpg



还有IAR具体设置的截图,太多了就不上传了,具体见百度云资料