Your Activity is the set of Drawer, ActionBar and any Fragments that you add to it. Imagine the Activity as a 'box' on you put 'blocks', which are the Fragments, so every time you select a new item in Drawer it changes the 'block' of your 'box'. "
If you started the Activity it should contain a Fragment 'main', 'home', 'main', as you prefer to call, to be added to your FrameLayout. After navigating the application through the menu, its FrameLayout will be replaced by other Fragments (FragmentManager replace command).
If you use the method 'addToBackStack (' name ')' your Activity's FragmentManager will create a stack of Fragments that will be unpinned if you use the 'onBackPressed ()' method.
In case you want to, once you click on a button you see your 'Home' again, just do the replace for your Fragment 'home'. And if you were stacking the Fragments with 'addToBackStack (' name ')' you can clean the stack using:
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
And then do the replace for your main fragment:
getSupportFragmentManager().beginTransaction()
.replace(R.id.FrameLayout, FragmentMain.newInstance(), "fragmentMain")
.commit();