0
這應該很容易,但它讓我難倒了。我有一個物理電路板,我正在用C語言編程,通過SPI從另一個芯片讀取信息。當我探測正確的引腳時,我收到下面的代碼字:終端輸出不是邏輯分析儀得到的結果
0xD54,除了它周圍有波動。這很好,因爲它給了我一個模擬信號的數字表示。值0xD54或多或少是正確的值。這絕對是在正確的範圍內。
我的程序的終端輸出給我的值如0xAA8。絕對不在相同的範圍內。 這裏是代碼:
uint32_t i;
uint8_t uc_pcs;
static uint16_t data;
uint16_t *p_buffer;
p_buffer = p_buf;
for (i = 0; i < size; i++) {
spi_write(SPI_MASTER_BASE, p_buffer[i], 0, 0);
/* Wait transfer done. */
while ((spi_read_status(SPI_MASTER_BASE) & SPI_SR_RDRF) == 0);
spi_read(SPI_MASTER_BASE, &data, &uc_pcs);
p_buffer[i] = data;
printf("Data = %X\n\r", *(p_buffer + i));
}
這是一些原始數據。左側的數據是探測電路板的正確數據。右側的數據是通過上述代碼在終端中收到的數據。
D51 AA2
D4F A9E
D52 AA4
D52 AA4