A native of Guilford County, North Carolina, Cannon had been a merchant and a surveyor prior to taking up the study of law. He was first elected to the state legislature in 1811 and served as a colonel of volunteers in the Creek War, and was then elected to the United States House of Representatives.
An opponent of the policies of Andrew Jackson, he was the first member of the Whig Party to be elected into the government of Tennessee. He was the first governor of Tennessee to benefit fully from the vastly increased powers given that office by the state constitution of 1834. During his first term as governor, many Tennesseans were involved in the fighting of the Seminole War of 1836 in Florida. He was re-elected to a second term beginning in 1837, but lost his bid for a third to Jackson ally and future President of the United States, U.S. Speaker of the House James K. Polk, dying just two years afterwards. Cannon County, Tennessee is named in his honor.