The 6-foot-7 forward spent the last two seasons with the Golden State Warriors, averaging 8.5 points and 4.5 rebounds. His best season came in 2006-07, when he averaged 9.8 points and 4.6 rebounds, then had 11.1 points and 5.7 rebounds in 11 playoff games.
The Arizona Republic reported on Tuesday that Barnes will earn the veteran minimum of $1.2 million. The Suns must only pay $797,000 of that and a league fund pays the rest.
Barnes, 28, joins his sixth team since leaving UCLA. Besides the Warriors, he played for the Los Angeles Clippers (2003-04), Sacramento Kings (2004-05), Philadelphia 76ers (2005-06) and New York Knicks (2005-06).
Barnes is a career 43.8 percent shooter, 32.4 percent from 3-point range. He was a second-round pick of Memphis in 2003 but was traded to Cleveland on draft day and began his pro career in the NBA Development League.
"He has a chance to have a big impact on our team," Suns general manager Steve Kerr said. "His athleticism and versatility at both ends of the court will be important for us, along with his playoff experience."
Information from The Associated Press was used in this report.