Certo....il mio era solo un esempio....l'errore di stack overflow è normale scritto come lo hai scritto tu(o come ti ho fatto capire male io).

Praticamente, scritto così continuerebbe a creare istanze di form infinite....form1 crea smsp che crea form1 che crea smsp che crea form1...etc...etc..etc...


Nel SerialPort1 scrivi il metodo che devi rendere di visibilità pubblica.
codice:
 public void QuestoEilMetodoPubblico()
    {
//qui scrivi il codice
    }
nel Form1 scrivi questo:
codice:
public partial class Form1 : Form    
    {
       SerialPort1 sp1 = new SerialPort1(); 
  
      private void button1_Click(object sender, EventArgs e)
        {
            sp1.QuestoEilMetodoPubblico(); 
        }
Facci sapere...
Ciao