Thanks Kaleb.  A follow-up: Can you tell me the difference between curve_id ECC_CURVE_DEF and ECC_SECP256R1?

My embedded device needs to securely exchange data with an Android smartphone app that uses the TEE.  TEE apps use NIST P256-R1 curve.  So my embedded device running wolfCrypt needs to perform ECHD (elliptic curve diffie helman) and support the ECDSA signature algorithm.  For ECDH, can I simply create a keypair using wc_DhGenerateKeyPair() or do I also need to call wc_DhSetKey() and specify P256R1?  If so, how is the curve specified?  I'm new to WolfCrypt so any help is appreciated!