Drummer Boy Campground is pretty popular. I've stayed there and found it to be adequate for visiting the battlefield. I like the pull troughs in the 300 section.
I have stayed at
Granite Hill Campground for the Blue Grass Festival. It was okay, but not a nice as Drummer Boy IMHO.
As far as the length of stay, it depends on how far you want to drill down into the history of the place. A trip to the visitor's center and museum, and
self guided audio walking tour or
even an audio car tour or bus tour of the battle field can be accomplished in one day. Side trips to places like Hershey Park, Harpers Ferry, the battlefield at Antietam, makes a length of stay infinite