SPI_Enable確認
SPI通信開始確認
code:c
//*****************************************
/**
* AD5308のD/A出力ルーチン
* @param sel : 使用するDA選択
* @param dap : 出力ポート
* @param dadt : 出力データ(0~255)
*/
//*****************************************
void AD5308out( AD5308SEL sel, USHORT dap, UCHAR dadt )
{
UINT dts;
GPIO_TypeDef *gport;
ULONG gbit;
SPI_HandleTypeDef* spi_handle;
extern SPI_HandleTypeDef hspi1;
extern SPI_HandleTypeDef hspi2;
///SPI通信停止
// DisableSPI(); ///< SPI通信停止
HAL_SPI_DeInit(&hspi1);
HAL_SPI_DeInit(&hspi2);
///SPI1設定:立下り同期に変更
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; ///< クロック極性:0
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; ///< クロック位相:2
HAL_SPI_Init(&hspi1); ///< SPI1通信設定
HAL_SPI_Init(&hspi2); ///< SPI2通信設定
__HAL_SPI_ENABLE(&hspi1); ///< SPI1通信開始
__HAL_SPI_ENABLE(&hspi2); ///< SPI2通信開始
OutGPIOBit(gport,gbit,LOW); ///< SPI_CSをLOW出力
///出力データ作成
dts=(UINT)dadt;
if ( ( dap & AD5308_MODE ) == 0 ) {
dts = ( dts << 4 );
}
dts=dts|dap;
///出力データ格納
txData0 = HIGHBYTE(dts); ///< 16BIT上位1Byte格納 txData1 = LOWBYTE(dts); ///< 16BIT下位1Byte格納 ///txDataデータ送信
HAL_SPI_Transmit(spi_handle, txData, AD5308_DATASIZE, AD5308_TIMEOUT);
OutGPIOBit(gport,gbit,HIGH); ///< SPI_CSをHIGH出力
///制御ポートの設定
///SPI通信停止
HAL_SPI_DeInit(&hspi1); ///< SPI1通信停止
HAL_SPI_DeInit(&hspi2); ///< SPI2通信停止
///SPI1設定:立上り同期に変更
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; ///< クロック極性:0
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; ///< クロック位相:1
///SPI通信開始
HAL_SPI_Init(&hspi1); ///< SPI1通信開始
HAL_SPI_Init(&hspi2); ///< SPI2通信開始
__HAL_SPI_ENABLE(&hspi1); ///< SPI1通信開始
__HAL_SPI_ENABLE(&hspi2); ///< SPI2通信開始
}
//--- End Modify ---
https://gyazo.com/5cdf91c4888e112c4965c29c10c1f3dc
https://gyazo.com/b296c0d287fd139c5b464c265f7c7018
https://gyazo.com/0b3638b70f68a0a3a8ebf6824bef237f