MultiDAQ
所属分类:单片机开发
开发工具:C/C++
文件大小:4085KB
下载次数:34
上传日期:2012-01-27 12:28:49
上 传 者:
LabVIEW解题
说明: LabVIEW STM32103 VISA 串口示波器 6路AD采样 2路PWM输出 DIO 数字输入输出
(LabVIEW STM32103 VISA Serial communication
2PWM out DIO Wavefrom)
文件列表:
MultiDAQ\builds\Untitled Project 1\My Application\Application.aliases (40, 2011-12-31)
MultiDAQ\builds\Untitled Project 1\My Application\Application.exe (233472, 2011-12-31)
MultiDAQ\builds\Untitled Project 1\My Application\Application.ini (323, 2011-12-31)
MultiDAQ\builds\Untitled Project 1\My Application (0, 2011-12-31)
MultiDAQ\builds\Untitled Project 1\My Application.rar (185380, 2011-12-31)
MultiDAQ\builds\Untitled Project 1 (0, 2011-12-31)
MultiDAQ\builds (0, 2011-12-31)
MultiDAQ\F103RBT6_Code\lib\inc\misc.h (8982, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_adc.h (21690, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_bkp.h (7555, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_can.h (27559, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_cec.h (6573, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_crc.h (2162, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_dac.h (15233, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_dbgmcu.h (3818, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_dma.h (20754, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_exti.h (6824, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_flash.h (25445, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_fsmc.h (27016, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_gpio.h (20175, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_i2c.h (30029, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_iwdg.h (3828, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_pwr.h (4383, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_rcc.h (30452, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_rtc.h (3857, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_sdio.h (21863, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_spi.h (17725, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_tim.h (52427, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_usart.h (16548, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc\stm32f10x_wwdg.h (2966, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\inc (0, 2011-12-28)
MultiDAQ\F103RBT6_Code\lib\src\misc.c (7046, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\src\stm32f10x_adc.c (47201, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\src\stm32f10x_bkp.c (8463, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\src\stm32f10x_can.c (45103, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\src\stm32f10x_cec.c (11656, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\src\stm32f10x_crc.c (3347, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\src\stm32f10x_dac.c (19087, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\src\stm32f10x_dbgmcu.c (5149, 2011-03-10)
MultiDAQ\F103RBT6_Code\lib\src\stm32f10x_dma.c (29607, 2011-03-10)
... ...
外部三个按钮中断还不是太懂。回头看一下。
启动了系统定时器SysTick功能,实现1mS中断一次用于系统时钟计数。
以查询方法产生20mS和100mS,1S分配时间段处理程序。程序中不使用Delay这样的浪费CPU的代码。
使用了以下功能
GPIO基本输入输出功能,四个按钮
定时器2定时中断 1ms 用于多线程任务定时中断处理
定时器3用于四路(两路)PWM不使用中断的定时输出功能
USART0的串口通信功能,串口发送两路的ADC转换数据
三路的模拟量输入功能,通过MDA读取,不占用CPU,不使用中断。
开启了WWDG看门狗
WWDG看门狗配置
允许喂狗时间为10ms-50ms,程序喂狗时间正常为20ms 所以程序中不应该有delay等长耗时的命令。
时钟配置
AHB设备时钟为系统时钟1分频 72M
AHB1设备时钟为HCLK时钟2分频 36M
AHB2设备时钟为HCLK时钟1分频 72M
ADC时钟为AHB2时钟的6分频 AHB2为72,72/6=12M
FLASH的的延时周期为2周期
串口配置如下
- BaudRate = 115200 baud
- Word Length = 8 Bits
- One Stop Bit
- No parity
- Hardware flow control disabled (RTS and CTS signals)
- Receive and transmit enabled
引脚使用说明
输入IO PA0,PA1,PA2 按钮输入
输出IO PB8,PB9,PB10,PB11 为四个指示灯
定时器 TIM1 CH1 PA8 PWM输出
定时器 TIM1 CH4 PA11 PWM输出
定时器 TIM2 产生定时中断
定时器 TIM3 ETR PD2 计数
模拟输入 PC0-PC5 配置为6路的模拟输入 AI输入 PC0, PC1, PC2, PC3, PC4, PC5
数字输入 PC6-PC9 配置为4路的数字输入
数字输出 PC10-PC12 配置为3路的数字输出
16-bit Timers with Input Capture, Output Compare and PWM,
16-bit 6-ch Advanced Timer,
2 16-bit Watchdog Timers,
SysTick Timer,
TIM2定时中断用于多线程任务定时中断处理
USART接收发送 PA9,PA10
温度测量 18B20 PA8 定时器TIM1 CH1
USB PA11
USB PA12
串口通信协议
uint8_t TxBuffer1[] = {0x5A,0x01,0x00, 0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x5B};
启始 地址 命令 数字 CH0 CH1 CH2 CH3 CH4 CH5 校验和 共17个字节的数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
uint8_t RxBuffer1[255] = 51 01 00 00 00 00 00 5B 的方式向上位发送信息
启始 地址 命令 数据1 数据2 校验和 共8字节
1 2 3 4 5 6 7 8
命令位
0x00 请求ADC的模拟转换数据输入和外部的按钮输入 这时数据1和数据2位无效
0x01 四位LED灯输出 这时数据1的高字节为LED数据
0x02 控制PWM脉冲输出频率 这时数据1为输出频率值
0x03 控制2通道的PWM输出脉冲的占空比 这时数据1为通道1的占空比,数据2为通道2的占空比。
0x04
近期下载者:
相关文件:
收藏者: