|
初學者 想用STM32F407讀取RHD1232芯片采集的腦電信號,使用SPI功能,先試著讀取R40-R44寄存器中的值,這五個寄存器官方給的數據手冊說存儲這INTAN這幾個字符的ASCII碼。
我仿照的SPI-FLASH程序,使用的也是SPI1,SPI初始化沒改,加了RHD1232初始化(只設置了片選信號)
出現的問題有一下幾個:
Q1:芯片數據手冊中,給R1-R17寄存器進行配置的時候是一次寫入8位數據的,但是Command部分,發送讀寫、校準等命令要求發送的數據格式是16位的。而STM32在SPI初始化的時候就要設置數據的傳輸位數是8位還是16位。我最開始配置的8位,發送命令時發送兩次,但是收到的數據不對。
Q2:為什么串口收回的數據每次都在變化,是根本就沒有返回數據嗎?
Q3:我用STM32給的FLASH例程但不調試的時候發現,單步執行到 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET); 語句時會卡在循環里,但是如果進入 u16 SPI1_ReadWriteByte(u16 TxData) 函數后,再直接執行跳出函數,是可以跳出來了, 這是為什么?
附上程序,總覺得我可能缺少什么,請大佬們指點。程序中可能有的又被我改了,但是問題基本就是描述的那樣。求教各位了
|
|