晚上看见军爷用示波器测试串口波特率,上了一大堆实体示波器的PP。
想到自己还有个USBee,果断测试对比。
老规矩,点击小图可看高清无码。
建议先看看军爷的测试帖,有个比较:http://forum.eepw.com.cn/thread/240529/1
先上测试实物图:
测试代码伺候【抄袭军爷的,不过军爷博客里头USART_InitStructure的定义貌似有些问题】:
#include "stm32f4_discovery.h"
#include "stm32f4xx_usart.h"
USART_InitTypeDef USART_InitStructure;
void NVIC_Config()
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void USART_Gpio_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOB , ENABLE);
//PB6->TX PB7->Rx
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_USART1);
}
void USART_Config(void)
{
USART_Gpio_Config();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
USART_InitStructure.USART_BaudRate = 8192000;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1,&USART_InitStructure);
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
USART_Cmd(USART1,ENABLE);
}
int main(void)
{
NVIC_Config();
USART_Config();
while(1)
{
USART_SendData(USART1,0xAA);
}
}
下面上USBee测试画面:
9600,能过关。
14400,还行。
19200,将就还能看。
38400
56K了
115.2K
128K了,一切顺利
256K也没有太大问题
512K,波形已经难看了,不过时间和频率还算正确。
1M,OMG,这个波形......,还好周期和频率健在。
2M,你妹,这还叫波形?不过USBee的虚拟示波器还能辨认出周期和频率,不过已经没有小数变化了,估计接近USBee极限了。
纳尼?上了4M,这个是波形吗?周期和频率依然健在。
8M,USBee倒下了,完成了它艰巨的任务,世界清净了......。
USBee在精度上还是有一定的差距,不过只要不是很变态的时序要求,基本上也能够完成普通的任务了。
512K,估计是USBee在9000K的Buffer Size下能显示最后的波形了。
不敢再调整Buffer Size了,我这台电脑的CPU三级缓存也就8M。
通过测试,这脉冲频率是和波特率一样,整个波形的频率就应该是波特率的一半。