本人单片机菜鸟,之前从来没有接触锅,毕业设计要测试C8051F560上的adc的静态参数,遇到了两个问题:
1.设置了采样率为10k( TMR2RL = 65535 - (SYSCLK / 10000); // Init reload value for 100uS),
adc是12位的,
设置波特率为115200(#define BAUDRATE 115200 // Baud rate of UART in bps),
数据位8位,无奇偶校验,1停止位,无flow control。(On the PC, open HyperTerminal (or any other terminal program) and connect to the USB port (virtual com port) at <BAUDRATE>, 8 data bits, no parity,1 stop bit and no flow control.)
但是根据测得的数据连接画图来看,输入正弦信号频率为100Hz时,采样点数只有20个左右,也就是采样频率只有20*100=2000Hz,当我把波特率设置为256000时,相应的采样点数会增加,也就是说采样频率会增加,想问下为什么会出现这种情况?按道理波特率为115200时,每秒传输的字符数为115200/(8+1)=12800,大于10k的采样率,应该足够传输10k个数据才对啊。那为什么波特率为115200时,只能传输2000个数据?波特率提高时为什么相应测得的采样点数也会提高?
2.还有一个小疑问,就是adc明明是12位的,为什么进行串口设置的时候数据位是8位?8位的数据范围是0-255,而12位adc的数据范围是0-4095,为什么数据位8位就够了? |