Armstrong's final and best throw of 20.49 metres was enough to advance and sit in seventh place.
The Kamloops, B.C., native's first throw had a mark of 19.99 metres. He faulted on his second attempt.
Canadian Justin Rodhe's faulted on each of his throws and did not make the final.
Competitors had three throws. The top 12 advanced to the final at 3:30 p.m. ET.
American Reese Hoffa registered a throw of 21.36 for the best mark of the qualification round.
Zelinka off to strong start
Meanwhile on the track, Canadian Jessica Zelinka opened her quest for a heptathlon medal with a strong second-place finish in the 100-metre hurdles.
The Calgary native ran a personal best time of 12.65 seconds, just 0.11 seconds behind leader Jessica Ennis of Great Britain.
Ennis picked up 1195 points, while Zelinka earned 1178 points.
Brianne Theisen of Humboldt, Sask., finished in sixth with a time of 13.30s.